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


Posted in Javascript onFebruary 07, 2018

本文实例讲述了原生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 相关文章推荐
IE浏览器兼容Firefox的JS脚本的代码
Oct 23 Javascript
javascript中使用replaceAll()函数实现字符替换的方法
Dec 25 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
Feb 07 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
Feb 13 Javascript
js检测网络是否具体连接功能的代码
May 23 Javascript
JavaScript极简入门教程(一):基础篇
Oct 25 Javascript
JavaScript实现找质数代码分享
Mar 24 Javascript
简介alert()与console.log()的不同
Aug 26 Javascript
JS实现鼠标移上去显示图片或微信二维码
Dec 14 Javascript
JavaScript日期选择功能示例
Jan 16 Javascript
微信小程序实现富文本图片宽度自适应的方法
Jan 20 Javascript
javascript实现点亮灯泡特效示例
Oct 15 Javascript
Express下采用bcryptjs进行密码加密的方法
Feb 07 #Javascript
Vue Element使用icon图标教程详解(第三方)
Feb 07 #Javascript
Vue.set()实现数据动态响应的方法
Feb 07 #Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
Feb 07 #Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
Feb 07 #Javascript
vue进行图片的预加载watch用法实例讲解
Feb 07 #Javascript
Angular浏览器插件Batarang介绍及使用
Feb 07 #Javascript
You might like
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
php生成QRcode实例
2014/09/22 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
PHP数据库编程之MySQL优化策略概述
2017/08/16 PHP
JQuery实现自定义对话框的代码
2008/06/15 Javascript
用Javascript数组处理多个字符串的连接问题
2009/08/20 Javascript
文本框input聚焦失焦样式实现代码
2012/10/12 Javascript
JS中showModalDialog 的使用解析
2013/04/17 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
JSON字符串转换JSONObject和JSONArray的方法
2016/06/03 Javascript
Canvas实现放射线动画效果
2017/02/15 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
webpack之devtool详解
2018/02/10 Javascript
Python实现的异步代理爬虫及代理池
2017/03/17 Python
python flask 多对多表查询功能
2017/06/25 Python
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
python定时利用QQ邮件发送天气预报的实例
2017/11/17 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
详解Python中的type和object
2018/08/15 Python
python绘制雪景图
2019/12/16 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
2020/03/27 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
Python自省及反射原理实例详解
2020/07/06 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
如何强制垃圾回收
2015/10/06 面试题
我读书我快乐演讲稿
2014/05/07 职场文书
放飞理想演讲稿
2014/09/09 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫
MySQL脏读,幻读和不可重复读
2022/05/11 MySQL
python如何为list实现find方法
2022/05/30 Python