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

    放大镜效果的html 部分:

    <div id="div1">
      <img src="img/m1.jpg" />
      <span id="mask"></span>
    </div>
    <div id="div2">
      <img src="img/b1.jpg" />
    </div>

    两张一样的图片,一张大图,一张小图,两张图片的比例要合适

    放大镜效果的JS部分:

    <script>
    window.onload=function(){
      var oDiv1 = document.getElementById('div1');
      var oDiv2 = document.getElementById('div2');
      var oMask = document.getElementById('mask');
      var oImg = oDiv2.getElementsByTagName('img')[0];
      

      //鼠标划过div1时小黄框和div2框显示
      oDiv1.onmouseover=function(){
        oDiv2.style.display='block';
        oMask.style.display='block';
      };

      //鼠标离开的时候小黄框和div2隐藏
      oDiv1.onmouseout=function(){
        oDiv2.style.display='none';
        oMask.style.display='none';
      };
      //小黄框在div1里移动的时候
      oDiv1.onmousemove=function(ev){
        var oEvent = ev||event;
        var l = oEvent.clientX-oDiv1.offsetLeft-oMask.offsetWidth/2;
        var t = oEvent.clientY-oDiv1.offsetTop-oMask.offsetHeight/2;
        

        //判断小黄框在DIV1里移动,不移到外面去,l 是判断左右t 判断上下
        if(l<0){
          l=0;
        }else if(l>oDiv1.offsetWidth-oMask.offsetWidth){
          l=oDiv1.offsetWidth-oMask.offsetWidth;
        }

        if(t<0){
          t=0;
        }else if(t>oDiv1.offsetHeight-oMask.offsetHeight){
          t=oDiv1.offsetHeight-oMask.offsetHeight;
        }
        oMask.style.left=l+"px";

        oMask.style.top=t+"px";

        //算比例,小黄块移动的比例与右边图片的比例相同
        oImg.style.left=-l/(oDiv1.offsetWidth-oMask.offsetWidth)*(oImg.offsetWidth-oDiv2.offsetWidth)+"px";

        oImg.style.top=-t/(oDiv1.offsetHeight-oMask.offsetHeight)*(oImg.offsetHeight-oDiv2.offsetHeight)+"px";

      };
    };
    </script>

    总结:

    感觉有两大难点

    1,就是距离的算法

    2,图片比例的算法

    如果问题,欢迎大家及时指点,一同交流,共同提高
  • 相关阅读:
    文件共享服务之FTP
    通过rsycn实现数据同步
    rsync命令的使用
    Linux之ssh服务
    跳板机的工作原理和简单的跳板机实现
    Linux进程管理
    javaweb图片上传 tomcat重新部署 图片消失
    KindEditor 上传文件
    PL/SQL通过修改配置文件的方式实现数据库的连接
    PermGen space
  • 原文地址:https://www.cnblogs.com/wujidns/p/4106836.html
Copyright © 2011-2022 走看看