基于JavaScript实现放大镜效果

描述:右侧图片必须是左侧图片的倍数大,主要是获取鼠标相对与被触发元素的坐标位置,再通过位置定位实现效果

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>放大镜效果</title><style type="text/css">*{margin: 0; padding: 0;}#left{width: 400px; height: 400px; background: url(./400x400.jpg) no-repeat 0 0/100% 100%;float: left; margin-left: 20px;position: relative;cursor: crosshair;}#box{/* 大小应该是图片的四分之一 */width: 200px; height: 200px; background: rgba(0, 0, 0, 0.3);position: absolute; top: 0; left: 0;display: none;}#cover{width: 400px; height: 400px; background: rgba(0, 0, 0, 0);position: absolute; top: 0; left: 0;}#right{width: 400px; height: 400px; float: left; margin-left: 20px;position: relative; overflow: hidden;display: none;}#pic{position: absolute; top:0; left:0;}</style><script>window.onload = function(){// 给left元素绑定鼠标移动事件var left = document.getElementById("left");var box = document.getElementById("box");var right = document.getElementById("right");left.onmousemove = function(event){// 获取事件对象var ev = window.event || event;// 获取鼠标与元素的位置,相对于被触发的元素left左上角位置var m_left = ev.layerX || ev.offsetX;var m_top = ev.layerY || ev.offsetY;// document.title = (m_left + "|" + m_top);// 计算box的位置var box_left = m_left-100;var box_top = m_top-100;document.title = (box_left + "|" + box_top);// 设置box移动条件box_left = box_left<0?0:box_left;box_top = box_top<0?0:box_top;box_left = box_left>200?200:box_left;box_top = box_top>200?200:box_top;// 让box动起来box.style.left = box_left + "px";box.style.top = box_top + "px";// 让右边图片动起来pic.style.left = "-" + box_left*2 + "px";pic.style.top = "-" + box_top*2 + "px";};// 鼠标移入图片显示left.onmouseover = function(){box.style.display = "block";right.style.display = "block";};// 鼠标移出事件left.onmouseout = function(){box.style.display = "none";right.style.display = "none";};}</script></head>
<body><!-- 左边图片 --><div id="left"><!-- 铺抓图片的表框 --><div id="box"></div><!-- 遮罩层 --><span id="cover"></span></div><!-- 右边图片,该图片应该是左边图片的倍数大 --><div id="right"><img src="./800x800.jpg" width="800" id="pic"></div></body>
</html>

基于JavaScript实现放大镜效果相关推荐

  1. 十六、Javascript实现放大镜效果

    @Author:Runsen @Date:2020/6/1 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  2. Javascript实现放大镜效果(手把手教会+详细注释+完整代码)

    今天来实现一个类似于淘宝京东商品店铺首页的放大镜效果!!! 具体实现效果如下图所示 案例分析 1.要实现放大镜效果,我们需要做哪些准备工作? 答: 我们首先需要创建三个盒子,分别对应的是小图片,大图片 ...

  3. JavaScript 设置放大镜效果

    效果要求 1.鼠标移至图片上方,鼠标周围出现黄色的的正方形框,黄色矩形框会随着鼠标的移动而移动: 2.将黄色正方形框里的内容的长和宽均放大2.4倍,并在图片右边进行显示. 实现原理: 为对应的元素绑定 ...

  4. javaScript实现放大镜效果

    放大镜效果图如下: 2个比例核心: 右侧大图宽高设置左侧展示图大小 / 遮罩层 = 右侧大图大小? / 右侧放大镜盒子 放大镜移动距离设置遮罩层移动位置 / 遮罩层宽高 = 右侧大图left | to ...

  5. JavaScript - 京东放大镜效果:鼠标移动查看图片放大细节

    效果 JS代码 window.addEventListener('load', function () {//获取元素var small = document.querySelector('.prev ...

  6. 原生javascript实现放大镜效果

    2019独角兽企业重金招聘Python工程师标准>>> html部分: <div class="main"><div id="xiao ...

  7. 逆战班-----javascript实现放大镜效果

    CSS部分代码 *.a_box{width:300px;height: 300px;position: absolute;left: 50px;top:50px;border: #000000 sol ...

  8. 仿京东商城商品图片 缩略图+放大镜效果

    Jquery包文件及样式下载 具体效果可参考京东商城商品图片展示 第一步:需要导入Jquery包文件和样式文件(放在<head></head>中间): <script s ...

  9. javascript实现图片放大镜效果

    当我们在电商网站上购买商品时,经常会看到这样一种效果,当我们把鼠标放到我们浏览的商品图片上时,会出现类似放大镜一样的一定区域的放大效果,方便消费者观察商品.今天我对这一技术,进行简单实现,实现图片放大 ...

最新文章

  1. ninject 的 实现 的 理解
  2. Maven父子工程配置文件详解
  3. 视频图像处理平台对比_情绪管理考勤机人脸识别原理与指纹识别性能对比-微幼科技...
  4. element ui 前台模板_SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(二):引入 element-ui 定义基本页面显示...
  5. C# 调用 Delphi Dll链接库方法及示例
  6. Android布局动态化,一种基于堆积木思想的卡片式Android动态布局方法与流程
  7. 从数据库里读值往TEXT文本里写
  8. Spring-Data-JPA尝鲜:快速搭建CRUD+分页后台实例
  9. 自定义 BaseServlet,通用Servlet的抽取,模块化开发Servlet
  10. EF 操作数据库中的表
  11. String.split()与StringUtils.split()的区别
  12. Protel常用封装库
  13. [Java] 自己写了个随机抽签器
  14. launchpad乐器_launchpad可以作为一种乐器加入乐队吗?
  15. oracle碎片产生原因,oracle碎片小结
  16. ROC曲线的绘制过程/AUC/TPR、FPR、敏感度和特异度
  17. android沉浸式模式简书,Android-沉浸式模式
  18. 【内网安全】——Windows提权姿势
  19. 鸟哥的私房菜——BASHShell
  20. 中国移动手机邮箱测试将扩展至北京用户

热门文章

  1. 编写一个脚本判断某个用户是否处在活动模式_使用 TypeScript 编写爬虫
  2. GitHub与GitLab的区别
  3. 2019下半年系统集成项目管理工程师上午真题
  4. Android编译tcpdump,android 使用tcpdump
  5. js中setInterval与setTimeout的区别
  6. Eureka error java.net.UnknownHostException:
  7. ORM版学员管理系统2
  8. [转]动态添加Fragments
  9. Windows8Windows Phone 做一个图片效果
  10. 如何使用 TStringGrid 呈现大量的颜色信息 - 回复 冷公子 的问题