亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

JavaScript實現多張圖片放大鏡效果示例【不限定圖片尺寸,rem單位】

2024-05-06 16:50:56
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript實現多張圖片放大鏡效果。分享給大家供大家參考,具體如下:

效果如下:可以展示圖片列表的放大鏡效果,圖片尺寸沒有要求會自動調整至水平垂直居中效果

JavaScript,圖片放大鏡

代碼如下,除了圖片要替換一下,其它的可直接運行查看效果,enlarge是圖片要放大查看的倍數,注意:.bigBox的寬高與.tool的寬高比值要與enlarge保持一致,比如本例中這個比值是4

<!doctype html><html><head>  <meta charset="UTF-8">  <title>Document</title>  <script>    function fontAuto() {      document.documentElement.style.fontSize = document.documentElement.clientWidth / 19.2 + 'px';    }    fontAuto();    window.onresize = function () {      fontAuto();    }  </script>  <style type="text/css">    * {      margin: 0;      padding: 0;    }    /*圖片放大鏡*/    .result-list li {      float: left;      width: 3rem;      margin: 0.15rem;      border: 1px solid #ddd;      padding: 0.08rem;      border-radius: 0.05rem;      list-style-type: none;    }    .result-list li:hover {      box-shadow: 0 0 10px 5px #ddd;    }    .img-to-big {      width: 100%;      height: 1.5rem;      margin: 0 auto;    }    .small-box {      width: 100%;      height: 1.5rem;      border: 1px #ccc solid;      cursor: move;      position: relative;      vertical-align: middle;      display: block;    }    .small-box img {      max-width: 100%;      max-height: 100%;      margin: auto;      display: block;      position: absolute;      top: 0;      left: 0;      right: 0;      bottom: 0;    }    .tool {      width: 1rem;      height: 1rem;      background-color: lightgray;      opacity: 0.6;      filter: alpha(opacity=60);      position: absolute;      left: 0;      top: 0;      display: none;    }    .tool.active {      display: block;    }    .big-box {      width: 4rem;      height: 4rem;      overflow: hidden;      border: 2px solid lightgray;      position: absolute;      background: #fff;      display: none;      left: 3rem;      z-index: 100;    }    .big-box.active {      display: table-cell;      vertical-align: middle;    }    .big-box img {      position: absolute;      display: block;    }    /*圖片放大鏡*/  </style></head><body><div class="result-list">  <ul>    <li>      <div class="img-to-big">        <div class="small-box">          <img class="small-img" src="img/zs2.jpg"/>          <div class="tool"></div>        </div>        <div class="big-box">          <img src="img/zs2.jpg" class="big-img"/>        </div>      </div>    </li>    <li>      <div class="img-to-big">        <div class="small-box">          <img class="small-img" src="img/zs2.jpg"/>          <div class="tool"></div>        </div>        <div class="big-box">          <img src="img/zs2.jpg" class="big-img"/>        </div>      </div>    </li>    <li>      <div class="img-to-big">        <div class="small-box">          <img class="small-img" src="img/zs2.jpg"/>          <div class="tool"></div>        </div>        <div class="big-box">          <img src="img/zs2.jpg" class="big-img"/>        </div>      </div>    </li>    <li>      <div class="img-to-big">        <div class="small-box">          <img class="small-img" src="img/zs2.jpg"/>          <div class="tool"></div>        </div>        <div class="big-box">          <img src="img/zs2.jpg" class="big-img"/>        </div>      </div>    </li>  </ul></div><script>  window.onload = function () {    forImg();    window.onresize = function () {      forImg();    };  }  function forImg() {    var enlarge = 4;    var imgToBig = document.getElementsByClassName("img-to-big");    var list = document.getElementsByClassName("result-list")[0];    for (var i = 0; i < imgToBig.length; i++) {      var smallBox = imgToBig[i].getElementsByClassName("small-box")[0];//小盒子      var smallImg = smallBox.getElementsByClassName("small-img")[0];      var tool = imgToBig[i].getElementsByClassName("tool")[0];//小盒子中的灰色區域      var bigBox = imgToBig[i].getElementsByClassName("big-box")[0];//大盒子      bigBox.style.left = smallBox.offsetLeft + smallBox.offsetWidth + "px";      bigBox.style.top = smallBox.offsetTop + "px";      var bigImg = imgToBig[i].getElementsByClassName("big-img")[0];//放大的圖片      var leftNum = smallBox.offsetParent;      var num = leftNum.offsetLeft;      imgSize(smallBox, smallImg, smallImg.getAttribute("src"), bigImg, enlarge);      toBigImg(smallBox, tool, bigBox, bigImg, num, smallImg, list, enlarge);    }    function imgSize(smallBox, thisImg, src, bigImg, enlarge) {      var img = new Image();      img.src = src;      img.onload = function () {        var realWidth = img.width;        var realHeight = img.height;        if ((realWidth / smallBox.offsetWidth) >= (realHeight / smallBox.offsetHeight)) {//當展示的圖片尺寸并不統一時,根據圖片長寬比例確定圖片以高度還是寬度為準進行縮放展示          thisImg.style.width = smallBox.offsetWidth + "px";          thisImg.style.height = "auto";          bigImg.style.width = smallBox.offsetWidth * enlarge + "px";          bigImg.style.height = "auto";        } else {          thisImg.style.height = smallBox.offsetHeight + "px";          thisImg.style.width = "auto";          bigImg.style.height = smallBox.offsetHeight * enlarge + "px";          bigImg.style.width = "auto";        }      }    }    function toBigImg(smallBox, tool, bigBox, bigImg, num, smallImg, list, enlarge) {      smallBox.onmouseenter = function () {        tool.className = "tool active";        bigBox.className = "big-box active";      };      //鼠標離開小盒子區域,不顯示黃色區域和大盒子      smallBox.onmouseleave = function () {        tool.className = "tool";        bigBox.className = "big-box";      };      //鼠標在小盒子內移動      smallBox.onmousemove = function (e) {        var _e = window.event || e;//事件對象        var x = _e.clientX - this.offsetLeft - tool.offsetWidth / 2 - num;//事件對象在小盒子內的橫向偏移量        var y = _e.clientY - this.offsetTop - list.offsetTop - tool.offsetHeight / 2;//豎向偏移量        if (x < 0) {          x = 0;//當左偏移出小盒子時,設為0        }        if (y < 0) {          y = 0;//當上偏移出小盒子時,設為0        }        if (x > this.offsetWidth - tool.offsetWidth) {          x = this.offsetWidth - tool.offsetWidth;//當右偏移出小盒子時,設為小盒子的寬度-黃色放大區域寬度        }        if (y > this.offsetHeight - tool.offsetHeight) {          y = this.offsetHeight - tool.offsetHeight;//當下偏移出小盒子時,設為小盒子的高度-黃色放大區域高度        }        tool.style.left = x + "px";//灰色放大區域距離小盒子左偏距        tool.style.top = y + "px";//灰色放大區域距離小盒子上偏距        bigImg.style.left = (-x + smallImg.offsetLeft) * enlarge + "px";//放大圖片移動方向相反,偏移距離加倍        bigImg.style.top = (-y + smallImg.offsetTop) * enlarge + "px";      }    }  }</script></body></html>

希望本文所述對大家JavaScript程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲色图第一页| 久久免费少妇高潮久久精品99| 亚洲第一区第一页| 日韩美女免费视频| 亚洲精选一区二区| 国产成人涩涩涩视频在线观看| 欧洲成人在线观看| 欧洲永久精品大片ww免费漫画| 亚洲人成在线观看| 欧美男插女视频| 亚洲精品一区在线观看香蕉| 色播久久人人爽人人爽人人片视av| 久久99精品久久久久久琪琪| 精品福利一区二区| 国模私拍一区二区三区| 一区二区三区高清国产| 亚洲xxxx视频| 久久综合免费视频影院| 992tv成人免费视频| 久久久人成影片一区二区三区观看| 69久久夜色精品国产69乱青草| 欧美最猛性xxxxx(亚洲精品)| 亚洲成人999| 国产精品都在这里| 日韩av电影在线免费播放| 91在线视频免费| 亚洲男人天堂九九视频| 日韩风俗一区 二区| 欧美大成色www永久网站婷| 欧美日韩国产第一页| 精品小视频在线| 97超级碰碰碰久久久| 国产精品久久久久久久久免费看| 欧美裸体xxxx极品少妇软件| 亚洲国模精品私拍| 在线播放亚洲激情| 中文字幕成人精品久久不卡| 国产精品高潮呻吟久久av无限| 国产精品久久久久久久久久东京| 亚洲片国产一区一级在线观看| 日韩大陆欧美高清视频区| 亚洲性69xxxbbb| 日本久久久a级免费| 国产一区二区丝袜高跟鞋图片| 国产aⅴ夜夜欢一区二区三区| 亚洲国产精品久久91精品| 欧美有码在线观看视频| 亚洲精品永久免费| 久久国产视频网站| 欧美福利视频网站| 51视频国产精品一区二区| 国产91免费看片| 久久久www成人免费精品张筱雨| 大伊人狠狠躁夜夜躁av一区| 午夜精品一区二区三区在线视频| 日本国产高清不卡| 欧美成人激情视频免费观看| 久久91精品国产91久久久| 亚洲成人精品久久久| 色婷婷综合久久久久| www.xxxx精品| 成人有码视频在线播放| 欧美大片在线看免费观看| 日韩精品电影网| 在线看日韩欧美| 动漫精品一区二区| 久久久久久久久中文字幕| 亚洲欧美日韩图片| 在线播放日韩精品| 欧美日韩国产999| 成人福利在线观看| 国产精品久久久久久久久久久新郎| 91手机视频在线观看| 久久综合亚洲社区| 精品调教chinesegay| 日韩欧美国产中文字幕| 91爱爱小视频k| 色婷婷av一区二区三区久久| 欧美激情高清视频| 国产成人综合精品| 日韩视频免费在线观看| 9.1国产丝袜在线观看| 欧美美女操人视频| 国产欧美一区二区三区在线| 久久综合88中文色鬼| 国产在线观看精品一区二区三区| 久久久精品日本| 日韩激情第一页| 成人疯狂猛交xxx| 国产亚洲精品日韩| 久久91亚洲精品中文字幕| 久热精品视频在线| 成人精品一区二区三区| 国产一区二区三区18| 在线成人激情视频| 欧美久久精品一级黑人c片| 久久亚洲成人精品| 欧美极品美女电影一区| 国产美女主播一区| 国产精品久久久久aaaa九色| 欧亚精品在线观看| 欧美激情在线观看| 国产精品扒开腿爽爽爽视频| 亚洲福利视频免费观看| 国产成人高潮免费观看精品| 姬川优奈aav一区二区| 中文字幕综合在线| 中文字幕日韩在线观看| 国产极品精品在线观看| 国产成人精品在线观看| 九九热视频这里只有精品| 中文字幕精品一区二区精品| 欧美性猛交xxx| 亚洲一二三在线| 国产亚洲精品va在线观看| 欧美尺度大的性做爰视频| 亚洲欧美国产一区二区三区| 九九精品在线观看| 亚洲人成电影网站| 久久久国产精品视频| 久久精品美女视频网站| 国内精品久久久久久中文字幕| 久久久久久亚洲精品中文字幕| 国产激情久久久久| 亚洲一区久久久| 日本亚洲精品在线观看| 国产精品成熟老女人| 最近2019中文字幕在线高清| 中文字幕欧美日韩在线| 国自产精品手机在线观看视频| 欧美亚洲在线播放| 97视频在线观看成人| 欧美激情在线一区| 日本成人黄色片| 热re91久久精品国99热蜜臀| 国产成人精品一区二区| 亚洲欧美制服第一页| 91老司机精品视频| 欧美日韩国产精品一区二区三区四区| 51精品在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 中文字幕日韩欧美精品在线观看| 国产亚洲aⅴaaaaaa毛片| 久久久久久久国产| 中文字幕亚洲一区二区三区五十路| 欧美一级免费看| 亚洲三级黄色在线观看| 亚洲女同性videos| 91夜夜揉人人捏人人添红杏| 国产视频观看一区| 欧美激情一二三| 久久精品国产99国产精品澳门| 亚洲18私人小影院| 欧美一区在线直播| 国产欧美一区二区三区视频| 国模吧一区二区| 亚洲色图欧美制服丝袜另类第一页| 成人免费直播live| 亚洲精品97久久| 国产精品香蕉国产| 亚洲精品狠狠操| 日韩精品免费在线视频| 亚洲18私人小影院| 久久久欧美一区二区|