时间:2021-05-26
昨天看一篇博文的时候,说到了这个效果,于是自己想试着写一个,没有使用插件,
基本的想法就是,左边是小图,右边对应大图,鼠标进去小图范围之后,获取他的坐标(x,y)然后计算
x/小图的宽度*大图得宽度/2
y/小图的高度*大图得高度/2
计算出来的两个结果即为大图得左右偏移距离
/2是为了让右边区域不会出现空白。
经过测试,ie7以上以及主流浏览器都可以用,代码如下:
主要的JS代码如下:
//不加蒙版放大镜 $('.small').mousemove(function(e) { $(this).siblings('.big').show(); //var e = event || window.event; var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; //滚动条距离屏幕左边的宽度 var scrollY = document.documentElement.scrollTop || document.body.scrollTop; //滚动条距离屏幕上面的高度 //e.pageX相对于文档左边的高度 //e.pageY相对于文档上面的高度 //e.clientX相对于屏幕左边的高度 //e.clientY相对于屏幕上面的高度 var xx = e.pageX || e.clientX + scrollX;//相对于文档左边的宽度 var yy = e.pageY || e.clientY + scrollY;//相对于文档上面的高度 //.offset().top元素相对于文档上面的位置 //.offset().left元素相对于文档左面的位置 var y=yy-$(this).offset().top;//鼠标相对于元素的x,y坐标 var x=xx-$(this).offset().left; var width=$(this).width(); var lwidth=$(this).siblings('.big').find('img').width(); //按照大图与小图的比例来进行移动的 var left=x/width*lwidth/2; var height=$(this).height(); var lheight=$(this).siblings('.big').find('img').height(); var top=y/height*lheight/2; $(this).siblings('.big').find('img').css({left:-left,top:-top}); //console.log(x + '---' + y); //不加蒙版放大镜结束 //蒙版跟着动 var twidth=$(this).find('.tool').width(); var theight=$(this).find('.tool').height(); var tleft=x-twidth/2; var ttop=y-theight/2; if(tleft<0){ tleft=0; } if(tleft>width-twidth){ tleft=width-twidth; } if(ttop<0){ ttop=0 } if(ttop>height-theight){ ttop=height-theight; } $(this).find('.tool').css({left:tleft,top:ttop}); });效果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
放大镜效果就是把鼠标移到图片上的时候,旁边会有另外一张大的图片展示,放大镜效果,那这样的效果怎样实现的呢,我把代码发给大家,请大家参考。放大镜*{margin:
简介网上有许多放大镜的jquery的插件,但是用着不是那么得心应手,现在一页代码实现一个放大镜功能,如果需要附加的功能可以手动修改,原理都在注释里放大镜效果*{
用js实现简单放大镜效果,供大家参考,具体内容如下此处放大镜实现的效果就是当鼠标放置在图片上会有半透明遮罩,图片的一个区域就会被放大,然后展示在右边。当鼠标移动
图片放大镜效果,供大家参考,具体内容如下一难点:不让黄盒子出界二难点:让大盒子相应移动(比例)我的放大镜*{margin:0;padding:0;}.box{m
仿淘宝放大镜封装效果,供大家参考,具体内容如下放大镜是做好了,但是没有下面小型导航无法选择放大图片,后期我会在封装出来的。由于考试当前考完试我会在推出vue的放