首页 > 其他 > 详细

放大镜

时间:2016-03-16 22:40:38      阅读:335      评论:0      收藏:0      [点我收藏+]
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Document</title>
 6 <style>
 7     #div1,#div2{
 8         float: left;
 9         width: 310px;
10         height: 310px;
11         position: relative;
12         margin:10px;
13     }
14     #div1 div{
15         width: 100px;
16         height: 100px;
17         position: absolute;
18         left: 0;
19         top: 0;
20         background-color: yellow;
21         opacity:.5;
22         filter:alpha(opacity=50);
23         display: none;
24     }
25     #div1 img{
26         width: 310px;
27         height: 310px;
28     }
29     #div2{
30         overflow: hidden;
31         display: none;
32     }
33     #div2 img{
34         width: 800px;
35         height: 800px;
36         position: absolute;
37         left: 0;
38         top: 0;
39     }
40 </style>
41 <script>
42 window.onload=function(){
43     var oDiv1=document.getElementById(div1);
44     var oMask=oDiv1.children[1];
45     var oDiv2=document.getElementById(div2);
46     var oImg=oDiv2.children[0];
47     oDiv1.onmouseover=function(){
48         oDiv2.style.display=block;
49         oMask.style.display=block;
50     };
51     oDiv1.onmouseout=function(){
52         oDiv2.style.display=none;
53         oMask.style.display=none;
54     };
55     document.onmousemove=function(ev){
56         var ev=ev||event;
57 
58         var t=ev.clientY-oDiv1.offsetTop-oMask.offsetHeight/2;
59         var l=ev.clientX-oDiv1.offsetLeft-oMask.offsetWidth/2;
60         
61         if(t<0){
62             t=0;
63         }else if(t>oDiv1.offsetHeight-oMask.offsetHeight){
64             t=oDiv1.offsetHeight-oMask.offsetHeight
65         }
66         if(l<0){
67             l=0;
68         }else if(l>oDiv1.offsetWidth-oMask.offsetWidth){
69             l=oDiv1.offsetWidth-oMask.offsetWidth
70         }
71 
72         oMask.style.top=t+px;
73         oMask.style.left=l+px;
74 
75         var T=-t*(oImg.offsetHeight-oDiv2.offsetHeight)/(oDiv1.offsetHeight-oMask.offsetHeight);
76         var L=-l*(oImg.offsetWidth-oDiv2.offsetWidth)/(oDiv1.offsetWidth-oMask.offsetWidth);
77 
78         oImg.style.top=T+px;
79         oImg.style.left=L+px;
80     };
81 };
82 </script>
83 </head>
84 <body>
85     <div id="div1">
86         <img src="img/2.jpg" alt="">
87         <div></div>
88     </div>
89     <div id="div2">
90         <img src="img/2.jpg" alt="">
91     </div>
92 </body>
93 </html>

技术分享

放大镜主要应用于商城物品的放大,里面设计了offsetTop,clientHeight等物体信息的转换,右边图片的放大就是左边图片的比例放大,移黄色小块,右边等比例移动。

放大镜

原文:http://www.cnblogs.com/yty12345/p/5285334.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!