用js实现放大镜的效果
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,第一次发博客,还有点小激动,本人现在正在天津上大学,希望以后从事前端这一行业,学习的时间不长,写博客为了记录自己的学习过程和收获,当然也算是巩固。可能写的东西不会像大牛那样高大上,只是一些基本的内容,
千家信息网最后更新 2025年12月02日用js实现放大镜的效果
第一次发博客,还有点小激动,本人现在正在天津上大学,希望以后从事前端这一行业,学习的时间不长,写博客为了记录自己的学习过程和收获,当然也算是巩固。可能写的东西不会像大牛那样高大上,只是一些基本的内容,当然我也会收藏一些我认为好的,不错的文章(其实最主要是我能看懂。。。。)。我相信以后自己也能够写出高大上的东西。加油!
废话说的有点多,说正事。前几天看了一段潭州教育的教学视频,其中的老师是用JQuery实现放大镜的效果(老师讲的是在是太慢,各种乱扯,跳着看的)。由于我还没有好好的学习过JQuery,但是那些基本的代码还是可以看懂的,所以就想拿现在正在学习的js练一下手,最后还是成功的实现了这个效果。
思路:先让move块和bimg块隐藏,当鼠标移动到box上时,使move块和bimg块显示,获取鼠标当前的位置,然后经过计算给与move块和bimg块适当的值实现放大镜效果(move块和bimg块的位置的计算后面有详细介绍)
放大镜 ![]()
![]()
css样式:
*{ margin:0px; padding:0px;}#box{ width:430px; height:430px; margin:100px; margin-left:17%; position:relative;//这里使用相对定位,好让其他的元素能依靠这个元素定位}#move{ background-p_w_picpath:url(../p_w_picpaths/move.png); width:220px; height:220px; position:absolute; left:0px; top:0px; display:none;//先让他隐藏,用js使其显示}#bimg{ width:430px; height:430px; overflow:hidden; position:absolute; top:0px; left:450px; display:none;//先让他隐藏,用js使其显示}#bimg img{ width:800px; height:800px; position:absolute; top:0px; left:0px;}_Javascript:
bigimg(){ bbox = document.getElementById("box"); bmove = document.getElementById("move"); bbimg = document.getElementById("bimg"); b_bimg = document.getElementById("b_bimg"); bbox.onmouseover = (){ bbimg.style.display = "block"; bmove.style.display="block"; } bbox.onmouseout = (){ bbimg.style.display = "none"; bmove.style.display="none"; } bbox.onmousemove = (e){ x = e.clientX; y = e.clientY; t = bbox.offsetTop; l = bbox.offsetLeft; _left = x - l - bmove.offsetWidth/2;//计算move的位置 _top = y - t -bmove.offsetHeight/2; (_top<=0) _top = 0; (_top>=bbox.offsetHeight-bmove.offsetHeight) _top = bbox.offsetHeight-bmove.offsetHeight ; (_left<=0) _left=0; (_left>=bbox.offsetWidth-bmove.offsetWidth) _left=bbox.offsetWidth-bmove.offsetWidth ; bmove.style.top = _top +"px"; bmove.style.left = _left + "px"; w = _left/(bbox.offsetWidth-bmove.offsetWidth);//计算移动的比例 h = _top/(bbox.offsetHeight-bmove.offsetHeight); b_bimg_top = (b_bimg.offsetHeight-bbimg.offsetHeight)*h; b_bimg_left = (b_bimg.offsetWidth-bbimg.offsetWidth)*w; b_bimg.style.top = -b_bimg_top + "px"; b_bimg.style.left = -b_bimg_left + "px"; } }效果图:
1、move块的计算
黑色箭头:
var x = e.clientX;//鼠标相对于视口的位置var y = e.clientY;
红色箭头:
var t = bbox.offsetTop;//box相对于视口的位置var l = bbox.offsetLeft;
橙色箭头:
var _left = x - l - bmove.offsetWidth/2;//计算move的位置var _top = y - t -bmove.offsetHeight/2;
2、bimg块的计算
利用move块在可移动范围内的比例来设置大图的位置
move块的移动范围:
bbox.offsetWidth-bmove.offsetWidth
move块现在的坐标占可移动范围的比例:
var w = _left/(bbox.offsetWidth-bmove.offsetWidth);//计算移动的比例var h = _top/(bbox.offsetHeight-bmove.offsetHeight);
bimg的移动范围:
b_bimg.offsetHeight-bbimg.offsetHeight
bimg的位置:
var b_bimg_top = (b_bimg.offsetHeight-bbimg.offsetHeight)*h;//计算大图的位置var b_bimg_left = (b_bimg.offsetWidth-bbimg.offsetWidth)*w;
限制move块移动范围的内容简单,在介绍move块的计算中以涉及到了,就不在多说。这样简单的放大镜效果就实现了。
位置
移动
效果
范围
放大镜
比例
学习
箭头
鼠标
高大
东西
元素
内容
博客
正在
老师
还是
大图
视口
定位
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
全球网络技术公司
案例分析网络技术
网络安全宣传创意图片
关系数据库安全策略
网络安全中最核心的要素
进入别人服务器提取数据库
电气绘图软件数据库
清除服务器框架数据库数据库
杭州手机棋牌软件开发的公司
数据库检查字段
网络安全钥匙怎么取消
数据库后台管理
台湾农产品数据库
闵行区信息化数据库厂家报价
天地劫服务器日期
解读网络安全主题班会
软件开发培训文案
gp数据库下载
深州市公安局网络安全直播
淘悦app软件开发
惠山区软件开发电话多少
吃鸡错误服务器目前非常繁忙
网络安全测评高级证书
java网络安全方面
宝塔数据库怎么防止别人提权
盐城防爆刀片服务器厂家
洛阳红东方软件开发
丝瓜视频下载安装网络安全
你愿意做金融软件开发嘛
有关网络安全的主题班会题目