JS实现图片放大镜效果:完整代码与实现原理
作者:闭包旅人时间:2026-10-22 15:56:45浏览:665
本文介绍如何使用JavaScript实现图片放大镜效果。通过监听鼠标移动事件,动态计算并调整放大区域的显示位置与尺寸,实现局部细节的放大查看。包含完整的HTML结构、CSS样式及JS逻辑代码,可直接复制运行,适用于前端开发中的图片浏览功能增强。
图片放大镜效果实现代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head><title>本站 js图片放大镜</title> <meta http-equiv="imagetoolbar" content="no"> <style type="text/css"> body { background: #222; overflow: hidden; left: 0; top: 0; width: 100%; height: 100%; margin: 0; padding: 0; } #screen span { position:absolute; overflow:hidden; border:#FFF solid 1px; background:#FFF; } #screen img{ position:absolute; left:-32px; top:-32px; cursor: pointer; } #caption, #title{ color: #FFF; font-family: georgia, 'times new roman', times, veronica, serif; font-size: 1em; text-align: center; } #caption b { font-size: 2em; } </style> </head><body> <div style="position: absolute; left: 50%; top: 50%;"> <div id="title" style="position: absolute; width: 440px; height: 40px; left: -220px; top: -200px;"></div> <div id="border" style="border: 1px solid rgb(85, 85, 85); background: rgb(0, 0, 0) none repeat scroll 0%; position: absolute; width: 440px; height: 340px; left: -220px; top: -170px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"></div> <div id="screen" style="background: rgb(0, 0, 0) none repeat scroll 0%; position: absolute; width: 400px; height: 300px; left: -200px; top: -150px; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> <span style="left: 0px; top: 0px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192147592.jpg" /></span> <span style="left: 0px; top: 78px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192148526.jpg" /></span> <span style="left: 0px; top: 155px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192151907.jpg" /></span> <span style="left: 0px; top: 233px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192153429.jpg" /></span> <span style="left: 103px; top: 0px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192154128.jpg" /></span> <span style="left: 103px; top: 78px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192154190.jpg" /></span> <span style="left: 103px; top: 155px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192154345.jpg" /></span> <span style="left: 103px; top: 233px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192155839.jpg" /></span> <span style="left: 205px; top: 0px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192156858.jpg" /></span> <span style="left: 205px; top: 78px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192156118.jpg" /></span> <span style="left: 205px; top: 155px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192157749.jpg" /></span> <span style="left: 205px; top: 233px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192158181.jpg" /></span> <span style="left: 308px; top: 0px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192158115.jpg" /></span> <span style="left: 308px; top: 78px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192159820.jpg" /></span> <span style="left: 308px; top: 155px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192201596.jpg" /></span> <span style="left: 308px; top: 233px; width: 93px; height: 68px; z-index: 93;"><img src="/upload/20080504192201700.jpg" /></span> </div> <div id="caption" style="position: absolute; width: 440px; height: 60px; left: -220px; top: 175px;"><b>carefully</b> weight the options</div> </div> </body></html>注意:引入外部JavaScript文件后,需要刷新页面才能执行相关脚本。
作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
