首先声明一下,我的两张图片是400 300和800 600的,所以代码中的div大小设置也是依赖于这个的。
如果图片大小更换,代码中的div的大小也要改变,而且如果两张图片要求是1:2的。

我把我的图片页拿出来了。。。

OK,代码附上。。。。。。。。。。。。。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {margin: 0;padding: 0;}#small {width: 400px;height: 300px;float: left;position: relative;}#big {width: 400px;height: 300px;float: left;/* 多余部分隐藏 */overflow: hidden;display: none;position: relative;}#drag {width: 200px;height: 150px;background-color: rgba(255, 255, 255, 0.5);position: absolute;left: 0;top: 0;display: none;}#big img {position: absolute;left: 0;top: 0;}</style>
</head><body><div id="small"><img src="small.jpg" alt=""><div id="drag"></div></div><div id="big"><img src="big.jpg" alt=""></div><script>var oSma = document.getElementById("small");var oBig = document.getElementById("big");var oDrag = document.getElementById("drag");var oImg = oBig.getElementsByTagName("img")[0];//小图片放大镜移入事件oSma.onmouseover = function (e) {oDrag.style.display = "block";oBig.style.display = "block";//设置放大镜活动范围var maxWidth = oSma.offsetWidth - oDrag.offsetWidth;var maxHeight = oSma.offsetHeight - oDrag.offsetHeight;//放大镜的移动oSma.onmousemove = function (e) {oDrag.style.left = e.clientX - oDrag.offsetWidth / 2 + "px";oDrag.style.top = e.clientY - oDrag.offsetHeight / 2 + "px";//判断放大镜是否移出范围if (oDrag.offsetLeft < 0) {oDrag.style.left = 0;}if (oDrag.offsetLeft > maxWidth) {oDrag.style.left = maxWidth + "px";}if (oDrag.offsetTop < 0) {oDrag.style.top = 0;}if (oDrag.offsetTop > maxHeight) {oDrag.style.top = maxHeight + "px";}//大图片的移动oImg.style.left = -(oDrag.offsetLeft * 2) + "px";oImg.style.top = -(oDrag.offsetTop * 2) + "px";}}//小图片放大镜移出事件oSma.onmouseout = function () {oDrag.style.display = "none";oBig.style.display = "none";}</script>
</body></html>

DOM经典例子(放大镜)相关推荐

  1. python爬虫经典教程-python爬虫经典例子有哪些

    python爬虫例子:首先导入爬虫的库,生成一个response对象:然后设置编码格式,并打印状态码:最后输出爬取的信息,代码为[print(response.text)]. python爬虫例子: ...

  2. 算法-动态规划学习(含经典例子分析)

    文章目录 前言 一.动态规划是什么? 二.经典例子 爬楼梯问题 挖金矿问题 三.总结 前言 在leetcode刷题的过程中,碰到了许多动态规划相关的题目,故系统性的学习了动态规划算法.此文章总结了学习 ...

  3. graphviz 经典例子

    以下在Jupyter Notebook中编辑运行: # 由于pygraphviz的功能有点少,基本放弃对它的使用,改用python库 graphviz 进一步原因如下: # graphviz 是用于& ...

  4. 面向对象经典例子理解

    Java面向对象(转) Java语言是面向对象的.Java语言提供类.接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为impleme ...

  5. 一个经典例子让你彻彻底底理解java回调机制

    以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中 ...

  6. 博弈论66个经典例子_「百大管理学定律」博弈论Game Theory

    博弈论(Game Theory),博弈论是指研究多个个体或团队之间在特定条件制约下的对局中利用相关方的策略,而实施对应策略的学科.有时也称为对策论,或者赛局理论,是研究具有斗争或竞争性质现象的理论和方 ...

  7. 空间换时间,查表法的经典例子

    前言 上一篇分享了:C语言精华知识:表驱动法编程实践 这一篇再分享一个查表法经典的例子. 我们怎么衡量一个函数/代码块/算法的优劣呢?这需要从多个角度看待.本篇笔记我们先不考虑代码可读性.规范性.可移 ...

  8. 信度和效度经典例子_浅析经典目标检测评价指标--mmAP(一)

    大家好,我是旷视科技南京研究院研究员赵博睿,主要研究领域为目标检测.今天和大家聊聊mmAP的那些事- 目标检测是计算机视觉领域的一项基础问题,在许多智能场景的落地应用中目标检测通常都是视觉感知的第一步 ...

  9. 蒙太奇经典例子_剧本中如何写好蒙太奇?这15个硬核案例告诉你!

    交流沟通请添加 小编微信:TMBB1000 蒙太奇在当代剧本中随处可见,无论什么题材,电影人和编剧总是不厌其烦地运用这一技巧.但哪些电影拥有最棒的蒙太奇片段?我们又能从中学到什么? 蒙太奇本质上是一种 ...

最新文章

  1. python3.8.2安装教程-在服务器上安装python3.8.2环境
  2. python 修改文件名_【学习分享】利用python批量修改文件名
  3. 趣学python3(32)-enumerate,zip
  4. QTP3种错误处理机制
  5. mysqli_connect_error 乱码解决
  6. QT + OpenCV + MinGW 在windows下配置开发环境
  7. 17年三月计算机二级,2017年3月计算机二级考试攻略
  8. python3发布时间_Python3优雅操作-时间处理与定时任务
  9. 威纶和s7200通讯线_威纶触摸屏与s7-200通信实例
  10. Asp.net中Application Session Cookie ViewState Cache
  11. python数据字典排序_Python自动处理数据字典(Python是3.6版本)
  12. nedc和epa续航里程什么意思_电动汽车续航能力NEDC、EPA、WTLP什么意思?哪个最硬核?...
  13. dill:解决python的“AttributeError: Can‘t pickle local object”及无法pickle lambda函数的问题
  14. 报错 应用程序池 中asp.net 4.0 自动停止
  15. 如何将音频从视频分离到单独的音轨?
  16. 外卖扫码点餐全开源小程序源码
  17. 无线网络技术:GPS(美国全球定位系统)的发展史
  18. 删除Excel数据中的空格
  19. 用endnote9往word中插入参考文献
  20. 都有哪些影响棋牌游戏开发价位的因素

热门文章

  1. 如何让Windows文件管理器滚动如macOS奶油般顺滑?
  2. 使用新浪微博-微博API的方法
  3. 远程桌面连接出现由于网络错误,连接被中断,请重新连接到远程计算机错误的解决方法
  4. ipex天线和板载天线区别
  5. 51 单片机 建立 文本文件_C51单片机头文件和启动文件
  6. VB.NET编程技巧与实例集粹 Module5_输入简单表达式并求值
  7. 从头学前端-CSS基础01
  8. 1 (SSM) springMVC + spring + Mybatis(MySQL)学习笔记 ------ 阶段成果笔记
  9. 极域电子教室管理员破解
  10. PSCAD处理次同步振荡