zoukankan      html  css  js  c++  java
  • 放大镜

     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等物体信息的转换,右边图片的放大就是左边图片的比例放大,移黄色小块,右边等比例移动。

  • 相关阅读:
    中文转码问题总结
    Linux命令总结
    Maven实战系列文章目录
    JXL API总结
    docker 中安装mysql8之后无法远程连接的问题caching-sha2-password
    springboot查数据并以csv格式现在到本地
    aop
    java.lang.ClassNotFoundException: org.aspectj.lang.JoinPoint
    shiro框架中获取username、ip等信息
    cron
  • 原文地址:https://www.cnblogs.com/yty12345/p/5285334.html
Copyright © 2011-2022 走看看