原生JS实现的放大镜功能,自己写的,简单使用

点击下面连接去我的github上下载出来打开就行,不需要复杂配置,在img标签的src属性把你自己的图片换上去就ok。
文件在此

走过路过,喜欢的话点个赞,加个关注,鼓励一下吧!

主要功能代码,如下

原理是判断鼠标在小图上的位置,再用一个比例去显示大图上对应的部分!

//鼠标在小盒子中移动时 遮盖层跟着鼠标移动
smallBox.onmousemove = function (e) {e = e || event;//获取鼠标在小盒子中的坐标var x = getPage(e).pageX - box.offsetLeft;var y = getPage(e).pageY - box.offsetTop;x = x - mask.offsetWidth / 2;y = y - mask.offsetHeight / 2;x = x < 0 ? 0 : x;y = y < 0 ? 0 : y;var maxX = smallBox.offsetWidth - mask.offsetWidth;var maxY = smallBox.offsetHeight - mask.offsetHeight;x = x > maxX ? maxX : x;y = y > maxY ? maxY : y;mask.style.left = x + 'px';mask.style.top = y + 'px';//显示对应的大图部分///计算大图片的偏移//mask移动的距离/大图片移动的距离 = mask最大能移动的距离/大图片最大能移动的距离//大图片移动的距离=mask移动的距离 * 大图片最大能移动的距离/mask最大移动的距离//大图片最大能移动的距离var bigMaxX = bigImg.offsetWidth - bigBox.offsetWidth;var bigMaxY = bigImg.offsetHeight - bigBox.offsetHeight;var bigImgx = x * bigMaxX / maxX;var bigImgy = y * bigMaxY / maxY; //负的  因为左边图片鼠标向下移的时候,右边大图应该向上移动bigImg.style.left = -bigImgx + 'px';bigImg.style.top = -bigImgy + 'px';
}

效果图

原生JS实现放大镜功能相关推荐

  1. 原生js实现放大镜效果

    记录一次原生js实现放大镜效果. 文章目录 效果图 设计思路 基本架子 蒙版 放大效果图 逻辑设计 蒙版跟放大的图肯定要先隐藏 鼠标移入图片显示蒙版 鼠标移动蒙版跟着移动 处理边界情况 大图移动 小优 ...

  2. 思路超清晰-js实现放大镜功能

    js实现放大镜功能 ​ 今天写项目,但是发现项目中的图片太小,很多信息我们都看不清楚,但是为了页面布局,我有不能讲图片调的尺寸过于大,因此,就想到了用js实现图片的放大镜来解决我的问题. 实现后功能大 ...

  3. js 写html代码编辑器,原生JS写一个功能强大的编辑器

    因为一个同学,要做一个能加入图片的留言板功能,类型与QQ空间留言板和百度贴吧发帖的那种形式,同时在网上找了找发生网上对这方面的交流很少,所以发表这篇文章抛砖引玉,希望能帮助广大的学习者,也同时希望大佬 ...

  4. 你需要了解的纯原生JS实现带有功能的前端购物车

    先来介绍一下都有哪些功能叭 添加购物车,清单库存数量会对应减少,库存不足会警告 从购物车删除,库存将返回清单,总价相应变化 点击"-",数量会返回到清单库存 点击"+&q ...

  5. 原生JS 实现放大镜

    <!-- 放大镜容器 --><div class="container"><!-- 小图 --><div class="smal ...

  6. Html+css+js实现放大镜功能(详细完整代码)

    通过将鼠标指向指定的图片,将鼠标移动到图片时,显示一个透明的小区域,然后将小区域的部分放大,查看细节. 运行效果:  详细代码: <!DOCTYPE html> <html>& ...

  7. 简易灯箱画廊设计html,原生Js实现的画廊功能

    原生Js实现画廊功能,点击图片,在下方出现相应放大图片.给a标签绑定onclick点击事件.这里上方的小图和下方将要展示大图,都是同一张图片,只是上下两个img的style中设置了不同的width和h ...

  8. vue版本的仿京东放大镜代码还有原生js版本的。(组件封装)

    vue版本的仿京东放大镜 <template><div class="maxBox"><divref="left"class=&q ...

  9. vue版本的仿京东放大镜代码还有原生js版本的。(组件封装

    src="https://imgres.crsky.com/crsky/60/297162-20210421095209607f8549bd770.jpg" alt="& ...

最新文章

  1. centos7.2安装mysql 1
  2. vagrant学习笔记
  3. CentOS7攻克日记(三) —— 安装Python3.6
  4. Spring入门(二)之下载与安装
  5. 腾讯视频下载安装免费2020_腾讯视频app的哪里发贴
  6. java库里_java8之StringJoiner。终于有像guava类库里的功能了
  7. SQL 2005 with(nolock)详解
  8. ST算法 Sliding Window algorithm template
  9. mysql-查询一天,一周,一月,一年,以及mysql的基本日期函数
  10. NET开发资源站点和部分优秀.NET开源项目
  11. 2016/2/24 1,dotctype有几种? 2,了解html的发展历史
  12. 探索性测试ET(Exploratory Test)
  13. w7为什么计算机没有摄像头.,W7笔记本摄像头怎么打开
  14. uniApp中图片文件上传插件(uniFilePicker)
  15. 快速入门solidity
  16. 微生物多样性数据分析(16S)
  17. 申威26010 芯片 服务器,解析申威26010处理器结构(附:国产超算发展史)
  18. 浅谈autolayout
  19. python时间戳是什么意思_Python-时间戳
  20. 人工智能、深度学习、机器学习常见面试题56~70

热门文章

  1. Carbondata 1.4.0+Spark 2.2.1 On Yarn集成安装
  2. POI操作Excel表格
  3. 已知收到的汉明码(按配偶原则配置)为1100111、1100001,检查上述代码是否出错?
  4. windows版本的docker安装es和es插件
  5. 计算机辅助药物设计的基本原理
  6. ULN2003驱动继电器电路
  7. 做内容营销,需要注意什么?
  8. asp.net web开发——文件的上传和下载
  9. Java政务办公源码,基于jsp的电子政务系统-JavaEE实现电子政务系统 - java项目源码...
  10. 免费获取知网文献----浙江图书馆+支付宝