使用JavaScript怎么实现一个放大镜效果?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
原理: 其实所谓的放大就是准备两张一样的图片,除大小不一样。鼠标移动到不同位置,将会显示大图片对应的图片内容。
完整代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>放大镜效果</title> </head> <body> <div id="wrap" > <div id="smallImg" > <img src="small.jpg" /> <span id="filter" > <span> </div> <div id="bigImg" > <img src="large.jpg" > </div> </div> <script type="text/javascript"> var filter = document.getElementById('filter'); var smallImg = document.getElementById('smallImg'); var bigImg = document.getElementById('bigImg'); var wrap = document.getElementById('wrap'); var largeImgs = bigImg.getElementsByTagName('img')[0]; smallImg.onmouseover = function(){ bigImg.style.display = "inline-block"; filter.style.display = "inline-block"; } smallImg.onmousemove = function(event){ var event = event || window.event; var mouseleft = event.clientX - wrap.offsetLeft; var mousetop = event.clientY - wrap.offsetTop; var left = mouseleft<smallImg.offsetWidth/4?0:mouseleft>smallImg.offsetWidth*3/4?smallImg.offsetWidth/2:(mouseleft - filter.offsetWidth/2); var top = mousetop<smallImg.offsetHeight/4?0:mousetop>smallImg.offsetHeight*3/4?smallImg.offsetHeight/2:(mousetop - filter.offsetWidth/2); filter.style.left = left + "px"; filter.style.top = top +"px"; largeImgs.style.left = "-" + left*bigImg.offsetWidth/smallImg.offsetWidth + "px"; largeImgs.style.top = "-" + top*bigImg.offsetHeight/smallImg.offsetHeight + "px"; } smallImg.onmouseout = function(){ bigImg.style.display = "none"; filter.style.display = "none"; } </script> </body> </html>
关于使用JavaScript怎么实现一个放大镜效果问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。