本文共 3368 字,大约阅读时间需要 11 分钟。
具体效果如下:
HTML代码如下:
原生js仿淘宝主图放大镜功能-www.webqdkf.com
CSS如下:
@charset "utf-8"; body,ul { padding: 0; margin: 0; } ul { list-style: none; } img { vertical-align: middle; width: 100%; height: 100%; } .wrap { position: relative; top: 100px; left: 100px; width: 400px; height: 492px; } .imgs { position: absolute; left: 0; top: 0; width: 100%; height: 100%; } .main { position: relative; overflow: hidden; padding: 4px; width: 390px; height: 390px; border: 1px solid #dadada; } .smaller { position: relative; overflow: hidden; width: 400px; height: 82px; margin-top: 10px; } .smaller li { position: relative; float: left; padding: 2px; width: 64px; height: 64px; border: 2px solid #000; margin-left: 10px; cursor: pointer; } .smaller li:first-child { margin-left: 0; } .smaller .current { border-color: #ff6a00; } .biger { position: absolute; overflow: hidden; display: none; left: 410px; width: 400px; height: 400px; } .mask { position: absolute; display: none; left: 0; top: 0; width: 200px; height: 200px; background: url('../images/mask-bg.png') repeat; cursor: crosshair; } .biger img { position: absolute; left: 0; top: 0; width: 200%; height: 200%; }
在HTML中,我们可以看到,里面有两个JS文件move.js与tools.js,以下是move.js源码。
window.onload=function(){ var biger=document.getElementById('biger'); var main=document.getElementById('main'); var smaller=document.getElementById('smaller'); var mask=document.getElementById('mask'); var wrap=biger.parentNode; var imgArr=[ {"path":"images/banner1.jpg"}, {"path":"images/banner2.jpg"}, {"path":"images/banner3.jpg"}, {"path":"images/banner4.jpg"}, {"path":"images/banner5.jpg"} ]; var imgSum=imgArr.length; if(imgSum>5){ imgSum=5; } for (var i=0;imain.offsetWidth-mask.offsetWidth){ pagex=main.offsetWidth-mask.offsetWidth; } if(pagey>main.offsetHeight-mask.offsetHeight){ pagey=main.offsetHeight-mask.offsetHeight; } mask.style.left=pagex+'px'; mask.style.top=pagey+'px'; var scale=(bigPic.offsetWidth-biger.offsetWidth)/(main.offsetWidth-mask.offsetWidth); var xx=pagex*scale; var yy=pagey*scale; bigPic.style.left=-xx+'px'; bigPic.style.top=-yy+'px'; } }
tools.js文件源码如下:
// 屏幕滚动 function scroll(){ if(window.pageXOffset!=undefined){ return { "left":window.pageXOffset, "top":window.pageYOffset } }else if(document.compatMode!='BackCompat'){ return { "left":document.body.scrollLeft, "top":document.body.scrollTop } }else { return { "left":document.documentElement.scrollLeft, "top":document.documentElement.scrollTop } } }
最后,也欢迎你分享你的实现方式,在留言区与大家进行交流学习。
转载地址:http://fkfpi.baihongyu.com/