欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-07-09 22:55:29
本文实例讲述了原生javascript实现的简单放大镜效果。分享给大家供大家参考,具体如下: 原理: 其实所谓的放大就是准备两张一样的图片,除大小不一样。鼠标移动到不同位...

本文实例讲述了原生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图片操作技巧大全》、《javascript图形绘制技巧总结》、《javascript页面元素操作技巧总结》、《javascript事件相关操作与技巧大全》、《javascript数据结构与算法技巧总结》及《javascript数学运算用法总结

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