中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用js制作淘寶放大鏡效果

發布時間:2021-06-18 10:26:04 來源:億速云 閱讀:141 作者:小新 欄目:web開發

小編給大家分享一下如何使用js制作淘寶放大鏡效果,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

具體內容如下

<!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制作淘寶放大鏡效果”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

松溪县| 西乌珠穆沁旗| 邹平县| 东源县| 兴安县| 白河县| 贡觉县| 龙陵县| 绵阳市| 恩平市| 建德市| 浪卡子县| 贵定县| 孟津县| 和硕县| 抚松县| 加查县| 阿拉善右旗| 古丈县| 故城县| 金湖县| 蕉岭县| 平果县| 康定县| 广宁县| 晋江市| 彭泽县| 胶州市| 湖州市| 博客| 神木县| 陆川县| 长乐市| 塘沽区| 比如县| 连城县| 佛教| 奉节县| 延津县| 中卫市| 胶州市|