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

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 11:34:38
字體:
來源:轉載
供稿:網友

本文實例講述了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圖片操作技巧大全》、《JavaScript切換特效與技巧總結》、《JavaScript運動效果與技巧匯總》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩大胆人体377p| 精品精品国产国产自在线| 欧美日韩第一页| 一区二区成人精品| 俺去亚洲欧洲欧美日韩| 久久影院模特热| 亚洲欧洲成视频免费观看| 91久久精品久久国产性色也91| 日韩免费高清在线观看| 久久777国产线看观看精品| 欧美日韩国产激情| 亚洲综合在线做性| 97国产suv精品一区二区62| 日本亚洲欧美成人| 奇米成人av国产一区二区三区| 亚洲天堂网站在线观看视频| 亚洲精品国产成人| 日韩av在线免费播放| 中文字幕日韩在线视频| 欧美成人精品在线观看| 黄网动漫久久久| 中文亚洲视频在线| 欧美精品亚州精品| 欧美日韩不卡合集视频| 国产精品一区二区久久久久| 97香蕉久久超级碰碰高清版| 亚洲最大成人网色| 中文字幕亚洲情99在线| 日韩中文在线中文网在线观看| 国产一区二区视频在线观看| 久久国产精品久久国产精品| 亚洲电影免费观看| 欧美激情亚洲精品| 国产精品亚洲一区二区三区| 国产欧美一区二区三区视频| 一区二区三区国产在线观看| 久久天天躁狠狠躁夜夜躁2014| 亚洲白拍色综合图区| 日韩在线国产精品| 久久久久久这里只有精品| 国产精品久久久久久久久久久久久| 国产亚洲精品综合一区91| 亚洲欧美国产制服动漫| 国产亚洲成av人片在线观看桃| 日韩av毛片网| 亚洲白虎美女被爆操| 日韩av电影手机在线观看| 亚洲欧美日韩精品久久亚洲区| 国产丝袜一区二区三区| 亚洲成人网在线观看| 主播福利视频一区| 国产日韩视频在线观看| 欧美日韩国产第一页| 久久国产精品久久久| 538国产精品视频一区二区| 国产午夜精品视频免费不卡69堂| 日韩中文第一页| 亚洲第一色中文字幕| 国产69精品久久久久99| 亚洲va码欧洲m码| 粗暴蹂躏中文一区二区三区| 91在线国产电影| 久99九色视频在线观看| 在线观看国产成人av片| 精品久久久久久久久久久久久| 亚洲japanese制服美女| 日韩高清a**址| 91亚洲va在线va天堂va国| 中文字幕在线精品| 国产精品大片wwwwww| 国产精品视频1区| 91视频免费在线| 在线精品91av| 欧美在线观看网站| 日韩免费在线免费观看| 成人久久精品视频| 俺去啦;欧美日韩| 一区二区三区视频在线| 欧美成人免费一级人片100| 欧美视频在线看| 精品国产欧美一区二区五十路| 一区二区三区国产视频| 日韩专区中文字幕| 91久久久久久久久| 日韩av网站在线| 成人性生交xxxxx网站| 久久久久日韩精品久久久男男| 午夜精品美女自拍福到在线| 日韩精品视频在线观看免费| 日本精品一区二区三区在线播放视频| 日韩综合视频在线观看| 中文字幕在线视频日韩| 人人澡人人澡人人看欧美| 亚洲一区二区自拍| 欧洲亚洲免费在线| 中文字幕成人精品久久不卡| 精品无人区太爽高潮在线播放| 国产精品福利在线观看网址| 亚洲精品久久久久久久久久久| 欧美日韩人人澡狠狠躁视频| 国产综合在线观看视频| 中文字幕久久精品| 国产一区二区精品丝袜| 欧美精品免费在线| 欧美日韩午夜剧场| 国产精品pans私拍| 亚洲欧美中文日韩在线v日本| 日韩精品在线免费播放| 国产精品美女久久久久久免费| 欧美视频在线免费看| 日韩经典中文字幕| 欧美在线视频一区| 日韩免费观看高清| 日日骚久久av| 国产亚洲精品美女| 久久av红桃一区二区小说| 一区二区欧美久久| 亚洲激情视频网站| 亚洲黄页视频免费观看| 国产精品美女免费| 久久精品99久久香蕉国产色戒| 国外色69视频在线观看| 国产精品一久久香蕉国产线看观看| 欧美国产日韩一区二区在线观看| 欧美精品一区二区三区国产精品| 在线观看日韩av| 国产精品色午夜在线观看| 2019中文字幕在线观看| 成人乱色短篇合集| 欧美成人精品在线观看| 北条麻妃99精品青青久久| 九九久久精品一区| 亚洲人成网站免费播放| 中文国产成人精品久久一| 日韩中文字幕国产精品| 亚洲女性裸体视频| …久久精品99久久香蕉国产| 91精品国产综合久久香蕉922| 一区二区亚洲精品国产| 色综合天天狠天天透天天伊人| 韩国视频理论视频久久| 成人有码视频在线播放| 国产成人精品在线视频| 亚洲精品一区中文字幕乱码| 久久久久久91| 日韩精品在线观| 国产香蕉精品视频一区二区三区| 国产精品伦子伦免费视频| 久久久国产精品一区| 日韩av电影手机在线| 国产精品网址在线| 亚洲成人av片| 久久久999精品免费| 亚洲美女又黄又爽在线观看| 日韩极品精品视频免费观看| 日韩成人激情在线| 91人人爽人人爽人人精88v| 欧美老少配视频| 亚洲欧美日韩高清| 91在线视频一区| 国产日韩精品在线观看| 亚洲第一男人天堂| 日韩电影免费观看在线| 日韩精品在线免费播放|