首页 > 开发 > JS > 正文

原生JavaScript实现的简单放大镜效果示例

2024-05-06 16:42:22
字体:
来源:转载
供稿:网友

本文实例讲述了原生JavaScript实现的简单放大镜效果。分享给大家供大家参考,具体如下:

原理: 其实所谓的放大就是准备两张一样的图片,除大小不一样。鼠标移动到不同位置,将会显示大图片对应的图片内容。

完整代码:

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>放大镜效果</title></head><body> <div id="wrap" style="position: relative;width: 900px;margin: 0 auto;text-align: center;">  <div id="smallImg" style="width: 400px;height: 400px; position: relative;z-index: 1;">   <img src="small.jpg" style="width: 400px;height: 400px;"/>   <span id="filter" style="width: 200px;height: 200px;background-color: blue;opacity: 0.1;position: absolute;top: 0;left: 0; z-index: 2;cursor: move;display: none;">   <span>  </div>  <div id="bigImg" style="width: 400px;height: 400px;overflow: hidden;position: absolute;right: 0px;top: 0;display: none;">   <img src="large.jpg" style="width: 800px;height:800px; position: absolute;left: 0;top: 0;">  </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,放大镜

希望本文所述对大家JavaScript程序设计有所帮助。


注:相关教程知识阅读请移步到JavaScript/Ajax教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表