国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

js圖片放大鏡實例講解(必看篇)

2019-11-19 16:04:03
字體:
來源:轉載
供稿:網友

1、圖片放大鏡的思路:

當打開頁面時只有圖片

首先,說一下基本效果和調理,圖片放大鏡,也就是當你鼠標移入當前的商品圖片時,會出現一個小灰色的觀察移動框,有點會出現一個對應部位的放大的圖片。

然后當鼠標移動時,右邊的放大鏡會出現對應部位的放大圖片

最后當鼠標移開后,小的觀察框和放大的圖片都會消失。

2、有了基本思路就看代碼

<!DOCTYPE html><html>  <head>    <meta charset="UTF-8">    <title></title>    <style type="text/css">      #small{        width: 300px;        height: 300px;        border: 1px solid firebrick;        float: left;        position: relative;      }      #small img{        width: 100%;        height: 100%;               }      #mask{        width: 100px;        height: 100px;        background: rgba(0,0,0,0.3);        position: absolute;        top: 0;        left: 0;        display: none;      }      #big{        width: 300px;        height: 300px;        border: 1px solid hotpink;        overflow: hidden;        float: left;        margin-left: 50px;        position: relative;        display: none;      }      #big img{        position: absolute;      }    </style>    <script type="text/javascript">      window.onload = function(){//       獲取到所有的元素,因為有對應元素的移動,所以在設置樣式的,一定要給對應的元素絕對定位,類似于拖拽        var oSmall = document.getElementById('small'),        oMask = document.getElementById('mask'),        oBig = document.getElementById('big'),        oBigImg = document.getElementById('bigImg');        //給當前小的div一個鼠標移入事件        oSmall.onmouseover = function(){//         當鼠標移入時,對應的區域顯示 小的觀察框,和 對應的右面的放大圖片          oMask.style.display = 'block';          oBig.style.display = 'block';        };        oSmall.onmouseout = function(){//         當鼠標移除時對應的區域隱藏          oMask.style.display = 'none';          oBig.style.display = 'none'        }        oSmall.onmousemove = function(ev){//         首先獲取到event事件          var oEvent = ev || event;//         offsetWidth = 本身的樣式寬 + 左右padding + 左右border//         clientX clientY 獲取鼠標指針位置,相對于當前窗口的 X 和 Y 坐標           //         鼠標距離當前窗口左邊的距離 了l ,就為當前鼠標距離窗口左邊的距離 減去 小的觀察框的寬度//             oMask.offsetWidth / 2 設置鼠標處于正中心的位置          var l = oEvent.clientX - oMask.offsetWidth / 2;          var t = oEvent.clientY - oMask.offsetHeight / 2;           //         對觀察框距離的限制, 1.當它距離左邊的距離比0 小的時候,設置它為0 就是它移動到最左邊的時候          if (l < 0) {            l = 0;          }else if(l > oSmall.offsetWidth - oMask.offsetWidth){//           當它移動到最右邊的時候,設置它的left值為 當前的left值            l = oSmall.offsetWidth - oMask.offsetWidth;          };                     //同理對上下邊界進行設置          if (t < 0) {            t = 0;          }else if(t > oSmall.offsetHeight - oMask.offsetHeight){            t = oSmall.offsetHeight - oMask.offsetHeight;          }; //         設置小的觀察框的移動時的當前位置          oMask.style.left = l + 'px';          oMask.style.top = t + 'px';           //         設置對應的右邊放大圖片對應的位置          //var scale = l / (oSmall.offsetWidth - oMask.offsetWidth);//         大的可視區域的寬減去小的觀察框對應的寬,就是可移動的總距離,  當前處的位置,處于總的距離的比例 與大圖片,在大圖片的可視框里所處的位置相同所以如下          oBigImg.style.left = l * (oBig.offsetWidth - oBigImg.offsetWidth)/(oSmall.offsetWidth-oMask.offsetWidth)+"px";          oBigImg.style.top = t * (oBig.offsetHeight - oBigImg.offsetHeight)/(oSmall.offsetHeight-oMask.offsetHeight)+"px";                   }      }    </script>  </head>  <body>    <div id="small">      <img src="img/s.jpg" />      <spanS id="mask"></span>    </div>    <div id="big">      <img src="img/b.jpg" id="bigImg"/>    </div>  </body></html>

還有什么更好的方法互相交流

以上這篇js圖片放大鏡實例講解(必看篇)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 双峰县| 南雄市| 柘城县| 松阳县| 汶川县| 广德县| 安陆市| 宁城县| 澜沧| 新安县| 保山市| 正安县| 陕西省| 潞城市| 屏南县| 娱乐| 孝义市| 谢通门县| 彭山县| 定远县| 枣阳市| 柞水县| 宿松县| 渑池县| 疏勒县| 永定县| 重庆市| 买车| 德钦县| 梅州市| 新丰县| 营口市| 峨眉山市| 沁源县| 四川省| 公主岭市| 佛坪县| 靖安县| 瓮安县| 南皮县| 万荣县|