对商品实现放大镜效果其实是拖拽事件的拓展。
在电商网站等购买东西的时候,我们经常会预览左侧商品展示图片,把鼠标放到原图,右侧就会有个大图显示出细节。本文将带领大家写一个这样简单的功能!
实现原理:
当鼠标移入某一图片内部时,图片上部会出现一个类似于扫描的框,这个框内的图片部分,会以方大形式展示在右边,如下图:

完整代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Title</title><style>#small {width: 130px;height: 130px;float: left;margin: 100px;position: relative;}#moveBox {width: 60px;height: 40px;background: rgba(255, 0, 0, 0.2);position: absolute;top: 0;cursor: all-scroll;display: none;}/*130/60 == 800/?*/#big {width: 369px;height: 246px;border: 1px solid blue;overflow: hidden;position: relative;top: 100px;left: 500px;display: none;}#big img {position: absolute;}</style><script></script>
</head><body><div id="small"><img src="small.jpg" alt=""><div id="moveBox"></div></div><div id="big"><img src="big.jpg" alt="" id="img"></div><script>var small = document.getElementById('small');var smJ = small.querySelector('img');var bigImg = document.getElementById('img');var moveDiv = document.getElementById('moveBox');var oBig = document.getElementById('big');//鼠标进入small.onmouseenter = function () {moveDiv.style.display = 'block';oBig.style.display = 'block';};//鼠标离开small.onmouseleave = function () {moveDiv.style.display = 'none';oBig.style.display = 'none';};//鼠标移动moveDiv.onmousemove = function (e) {e = e || window.event;var x = e.clientX - small.offsetLeft - moveDiv.offsetWidth / 2;var y = e.clientY - small.offsetTop - moveDiv.offsetHeight / 2;//边界问题if (x < 0) {x = 0;}if (x > small.offsetWidth - moveDiv.offsetWidth) {x = small.offsetWidth - moveDiv.offsetWidth;}if (y < 0) {y = 0;}if (y > small.offsetHeight - moveDiv.offsetHeight) {y = small.offsetHeight - moveDiv.offsetHeight;}moveDiv.style.left = x + 'px';moveDiv.style.top = y + 'px';//比例 = 大图移动的距离/moveDiv移动的距离 = 大图/小图var scale = bigImg.offsetWidth / smJ.offsetWidth;bigImg.style.marginLeft = -scale * x + 'px';bigImg.style.marginTop = -scale * y + 'px';};</script>
</body></html>

在JavaScript中实现商品图片的局部放大(放大镜)相关推荐

  1. 同时复制保存汇奇思百货多个商品图片

    汇奇思百货商品平民化的价格,这里不少的百货商品,都很受欢迎呢,但是它们的商品图片是如何保存到呢?下面一起来用下图高手来试试吧. 打开下图高手,将"自动粘贴网址"打勾起来,并在下图选 ...

  2. 商品详情页html代码获取,直播带货小程序源码中,商品详情页是如何获取html图片的...

    在搭建直播带货小程序源码过程中,需要为商品构建详情页,而商品页中的图片是要通过html获取并展示到本地的,那么这个过程是如何实现的?接下来小编将通过代码演示一下: 1.配置webView mWebVi ...

  3. java script的图片隐藏,java和javascript中过滤掉img形式的字符串不显示图片的方法...

    本文实例讲述了java和javascript中过滤掉img形式的字符串不显示图片的方法.分享给大家供大家参考.具体实现方法如下: 1. javascript过滤掉和形式的字符串 复制代码代码如下: 过 ...

  4. 使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理。距离远时图片放大,距离近时图片缩小

    查看本章节 查看作业目录 需求说明: 使用JavaScript 中的Math对象和勾股定理公式,计算鼠标的位置与页面图片中心点的距离,根据距离对页面上的图片进行放大或缩小处理.距离远时图片放大,距离近 ...

  5. JavaScript中的图片处理与合成(一)

    JavaScript中的图片处理与合成(一) 引言: 图片处理现在已经成为了我们生活中的刚需,想必大家也经常有这方面的需求.实际前端业务中,也经常会有很多的项目需要用到图片加工和处理.由于过去一段时间 ...

  6. SpringBoot+Vue实现商品不能重复加入购物车、购物车中展示商品的信息、删除商品重点提示等操作。如何点击图片实现图片放大

    如何通过点击商品详情下方的加入购物车按钮,将商品信息加入到个人购物车下?如何阻止重复加入同一个商品到购物车?如何在删除购物车中的商品时,重点提示?后端的数据库如何设计来保证加入的商品在当前用户下? 前 ...

  7. vue3,电商项目中的商品详情-图片预览组件

    目的:完成商品图片预览功能和切换 分享一个vueuse的插件useMouseInElement useMouseInElement的官方文档 // 监听DOM元素 target 绑定的DOM元素中鼠标 ...

  8. 一键获取网页中的全部图片并批量下载(国内淘宝天猫京东网站+国外商品页面)——亲测有效

    上周六的时候,有个朋友找到我,需要将网页中的图片全部下载下来,而且还不能改变图片的大小: 作为一个前端,经常跟html打交道,我深知页面中肯定是有图片链接的 网页中下载少量图片的方法 举例说明网页中图 ...

  9. html 点击收藏效果,收藏Javascript中常用的55个经典技巧

    收藏Javascript中常用的55个经典技巧 更新时间:2007年08月12日 15:39:21   作者: 1. οncοntextmenu="window.event.returnVa ...

最新文章

  1. 怎样通过DOS来提取一个文件夹下所有文件的名字
  2. 在Android中afinal框架下实现sqlite数据库版本升级的办法
  3. TCP中间件_Delphi_client
  4. 只读域控制器在Server Core中的部署
  5. toj 4608 Ball in a Rectangle
  6. 毕设题目:Matlab树叶识别
  7. 1002 输出第二个整数
  8. 五大常用算法之贪心算法
  9. RFB Net 笔记
  10. 国内外已知SAR卫星相关信息整理(持续更新-2022.9.6)
  11. 理论计算机科学方向,计算机科学与技术专业考研方向:计算机软件与理论
  12. 几何学五大公理_数学几何的五大公理、五大公设是什么?
  13. 制作单词记录App(三)
  14. 人工蜂群算法(Artificial Bee Colony, ABC)MATALAB代码详细解析
  15. “二舅”火了,自媒体短视频“爆火”的基本要素,你知道吗?
  16. 克隆linux虚拟机密码是多少,Linux虚拟机的克隆及问题处理
  17. 【优化求解】基于猫群算法CSO求解最优目标matlab源码
  18. 柯桥留学日语培训机构有吗日本人平时都喝什么酒?
  19. 字节跳动简历冷却期_从简历被刷到拿字节跳动 offer,我花了一年时间
  20. 战舰V3适配oneos系列05:添加外部SRAM

热门文章

  1. 集群和均衡负载[摘]
  2. dmp格式怎么转换_如何生成转储(dmp)文件--工具篇
  3. Html与Css样式
  4. 红米手机1 升级到android5,从小米MAX 1到红米 K20 pro的“升级”之路。
  5. 全志V3s学习记录(13)OV2640的使用
  6. ETL学习-前期准备
  7. 学习笔记:获取疫情数据,并绘制可视化地图
  8. 目标跟踪论文(一):SiamFC孪生网络
  9. vue Linter的各种坑
  10. 海思3516开发记录-AAC音频解码