• 放大镜


     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          310px;
    10         height: 310px;
    11         position: relative;
    12         margin:10px;
    13     }
    14     #div1 div{
    15          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          310px;
    27         height: 310px;
    28     }
    29     #div2{
    30         overflow: hidden;
    31         display: none;
    32     }
    33     #div2 img{
    34          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等物体信息的转换,右边图片的放大就是左边图片的比例放大,移黄色小块,右边等比例移动。

  • 相关阅读:
    C++与AS3
    基于Hadoop的大数据平台实施记——整体架构设计
    as3用鼠标拖动图形拼图——灰常简单的教程
    as3 与js相互通信
    cocos2d-x获取系统时间
    lucene3.6笔记添加搜索功能
    Ubuntu小私房(3)--Uubutnu启动美化大变身
    C++一维数组和指针的关系总结
    poj2486 Apple Tree (树形dp)
    opencv 中cvZero()的使用
  • 原文地址:https://www.cnblogs.com/yty12345/p/5285334.html
Copyright © 2020-2023  润新知