JavaScript實現(xiàn)圖片放大預覽效果
更新時間:2020年11月02日 11:03:19 作者:火星飛鳥
這篇文章主要介紹了JavaScript實現(xiàn)圖片放大預覽效果,幫助大家更好的理解和制作JavaScript特效,感興趣的朋友可以了解下
代碼實現(xiàn):
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .preview-img { position: relative; height: 398px; } .mask { display: none; position: absolute; top: 0; left: 0; width: 300px; height: 300px; background-color: skyblue; opacity: .4; border: 1px solid #ccc; cursor: move; } .big { overflow: hidden; display: none; position: absolute; top: 0; left: 410px; width: 500px; height: 500px; background-color: pink; z-index: 99; border: 1px solid #ccc; } .big img { position: absolute; top: 0; left: 0; } </style> </head> <body> <script> window.addEventListener('load', function() { var preview_img = document.querySelector('.preview-img'); var mask = document.querySelector('.mask'); var big = document.querySelector('.big'); // 顯示與隱藏 preview_img.addEventListener('mouseover', function() { mask.style.display = 'block'; big.style.display = 'block'; }); preview_img.addEventListener('mouseout', function() { mask.style.display = 'none'; big.style.display = 'none'; }); // 盒子跟隨鼠標移動 preview_img.addEventListener('mousemove', function(e) { var x = e.pageX - this.offsetLeft; var y = e.pageY - this.offsetTop; var maskX = x - mask.offsetWidth / 2; var maskY = y - mask.offsetHeight / 2; var maskMax = preview_img.offsetHeight - mask.offsetHeight; if (maskX <= 0) { maskX = 0; } else if (maskX >= maskMax) { maskX = maskMax; } if (maskY <= 0) { maskY = 0; } else if (maskY >= maskMax) { maskY = maskMax; } mask.style.left = maskX + 'px'; mask.style.top = maskY + 'px'; // 大圖,根據(jù)比例計算坐標 var bigImg = document.querySelector('.bigImg'); var bigMax = bigImg.offsetWidth - big.offsetWidth; var bigX = bigMax * maskX / maskMax; var bigY = bigMax * maskY / maskMax; bigImg.style.left = -bigX + 'px'; bigImg.style.top = -bigY + 'px'; }); }); </script> <div class="preview-img"> <img src="https://s1.ax1x.com/2020/10/12/027yRg.jpg" alt=""> <div class="mask"></div> <div class="big"> <img src="https://s1.ax1x.com/2020/10/12/0276zQ.jpg" alt="" class="bigImg"> </div> </div> </body> </html>
實現(xiàn)效果:
以上就是JavaScript實現(xiàn)圖片放大預覽效果的詳細內(nèi)容,更多關(guān)于JavaScript 圖片放大的資料請關(guān)注腳本之家其它相關(guān)文章!
您可能感興趣的文章:
- javascript實現(xiàn)商品圖片放大鏡
- js實現(xiàn)點擊圖片在屏幕中間彈出放大效果
- JavaScript實現(xiàn)圖片放大鏡效果
- JavaScript實現(xiàn)多張圖片放大鏡效果示例【不限定圖片尺寸,rem單位】
- JavaScript實現(xiàn)圖片的放大縮小及拖拽功能示例
- js實現(xiàn)圖片局部放大效果詳解
- js實現(xiàn)圖片放大并跟隨鼠標移動特效
- JS滾輪控制圖片縮放大小和拖動的實例代碼
- JS與CSS3實現(xiàn)圖片響應(yīng)鼠標移動放大效果示例
- JS實現(xiàn)圖片放大鏡插件詳解
- js實現(xiàn)圖片放大展示效果
- hammer.js實現(xiàn)圖片手勢放大效果
相關(guān)文章
詳解ES6數(shù)組方法find()、findIndex()的總結(jié)
這篇文章主要介紹了詳解ES6數(shù)組方法find()、findIndex()的總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05Bootstrap模態(tài)對話框中顯示動態(tài)內(nèi)容的方法
今天小編就為大家分享一篇Bootstrap模態(tài)對話框中顯示動態(tài)內(nèi)容的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08Webpack打包css后z-index被重新計算的解決方法
這篇文章主要跟大家分享了Webpack打包css后z-index被重新計算的解決方法,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面跟著小編一起來學習學習吧。2017-06-06javascript精確統(tǒng)計網(wǎng)站訪問量實例代碼
網(wǎng)站一般都有訪問量統(tǒng)計工具,比較高效實用的工具多種多樣,這篇文章主要介紹了javascript精確統(tǒng)計網(wǎng)站訪問量實例代碼,感興趣的小伙伴們可以參考一下2015-12-12javascript實現(xiàn)在網(wǎng)頁中運行本地程序的方法
這篇文章主要介紹了javascript實現(xiàn)在網(wǎng)頁中運行本地程序的方法,實例分析了JavaScript基于ActiveXObject運行本地程序的技巧,需要的朋友可以參考下2016-02-02