如何使用js制作淘宝放大镜效果-创新互联

小编给大家分享一下如何使用js制作淘宝放大镜效果,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

盐津网站建设公司成都创新互联公司,盐津网站设计制作,有大型网站制作公司丰富经验。已为盐津近1000家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的盐津做网站的公司定做!

具体内容如下

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
      *{
        margin: 0;
        padding: 0;
      }
      img{
        width: 100%;
        height: 100%;
      }
      #content{
        width: auto;
        height: auto;
        margin-left: 200px;
        margin-top: 60px;
      }
      #content-left{
        position: relative;
        width: 420px;
        height: auto;
        float: left;
      }
      #middle{
        border: 1px solid #d2d2d2;
        width: 418px;
        height: 418px;
      }
      #small{
        width: 420px;
        height: auto;
      }
      #glass{
        position: absolute;
        width: 200px;
        height: 200px;
        background-color: pink;
        top: 0;
        opacity: 0.5;
        z-index: 1;
        display: none;
      }
      ul{
        width: inherit;
        height: 60px;
      }
      ul li{
        display: inline;
        height: 60px;
        list-style: none;
        float: left;
        margin: 10px;
      }
      #content-right{
        position: relative;
        width: 418px;
        height: 418px;
        border: 1px solid #ccc;
        float: left;
        margin-left: 10px;
        overflow: hidden;
        display: none;
      }
      #content-right img{
        position: absolute;
        width: 836px;
        height: 836px;
      }
    </style>
  </head>
  <body>
    <div id="content">
      <div id="content-left">
        <div id="middle">
          <div id="glass"></div>
          <img src="img/01.jpg"/>
        </div>
        <div id="small">
          <ul>
            <li><img src="img/1.jpg"/></li>
            <li><img src="img/2.jpg"/></li>
            <li><img src="img/3.jpg"/></li>
            <li><img src="img/4.jpg"/></li>
            <li><img src="img/5.jpg"/></li>
          </ul>
        </div>
      </div>
      <div id="content-right">
        <img src="img/001.jpg"/>
      </div>
    </div>
  </body>
  <script type="text/javascript">
    var smallLi = document.getElementById("small").getElementsByTagName("ul")[0].getElementsByTagName("li");
    var middle = document.getElementById("middle")
    var middleImg = middle.getElementsByTagName("img")[0]
    var contentRight = document.getElementById("content-right");
    var bigImg = contentRight.getElementsByTagName("img")[0]
    var glass = document.getElementById("glass");
    //获取放大镜大小
    var bigImgWidth = getStyle(bigImg,"width");
    var bigImgHeight = getStyle(bigImg,"height");
    var contentRightWidth = getStyle(contentRight,"width");
    var contentRightHeight = getStyle(contentRight,"height");
    var middleWidth = getStyle(middle,"width");
    var middleHeight = getStyle(middle,"height");
    var glassWidth = contentRightWidth/bigImgWidth*middleWidth;
    var glassHeight = contentRightHeight/bigImgHeight*middleHeight;
    var middleBorder = getStyle(middle,"border")
    glass.style.width = glassWidth + "px";
    glass.style.height = glassHeight + "px";
    for(var i =0;i<smallLi.length;i++){
      (function(index){
        smallLi[i].onmouseover = function(){
          middleImg.src = "img/0"+index+".jpg";
          bigImg.src = "img/00"+index+".jpg"
        }
      })((i+1));
    }
    middle.onmouseover = function(){
      contentRight.style.display = "block"
      glass.style.display = "block"
      middle.onmousemove = function(ev){
        var evt = ev||event
        var x = evt.x - content.offsetLeft -glass.offsetWidth/2 + window.scrollX - middleBorder
        var y = evt.y - content.offsetTop - glass.offsetHeight/2 + window.scrollY - middleBorder
        if(x<=middleBorder){
          x = middleBorder;
        }
        if(x>=middle.offsetWidth-glass.offsetWidth-middleBorder){
          x = middle.offsetWidth - glass.offsetWidth -middleBorder;
        }
        if(y<=middleBorder){
          y = middleBorder;
        }
        if(y>=middle.offsetHeight-glass.offsetHeight-middleBorder){
          y = middle.offsetHeight - glass.offsetHeight - middleBorder;
        }
        glass.style.left = x + "px"
        glass.style.top = y + "px"
        bigImg.style.left = -x*middleWidth/glassWidth + middleBorder*2 + "px"
        bigImg.style.top = -y*middleHeight/glassHeight + middleBorder*2 + "px"
        console.log(x)
        console.log(x*middleWidth/glassWidth)
      }
      middle.onmouseout = function(){
        contentRight.style.display = "none";
        glass.style.display = "none";
      }
    }
    function getStyle(obj,attr){//获取css属性
      return (obj.currentStyle)?parseInt(obj.currentStyle[attr]):parseInt(getComputedStyle(obj,false)[attr]);
    }
  </script>
</html>

看完了这篇文章,相信你对“如何使用js制作淘宝放大镜效果”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联网站建设公司行业资讯频道,感谢各位的阅读!

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

本文标题:如何使用js制作淘宝放大镜效果-创新互联
当前地址:https://www.cdcxhl.com/article42/dssoec.html

成都网站建设公司_创新互联,为您提供动态网站网站内链自适应网站网站设计公司小程序开发网站策划

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

h5响应式网站建设