昨天看一篇博文的时候,说到了这个效果,于是自己想试着写一个,没有使用插件,
基本的想法就是,左边是小图,右边对应大图,鼠标进去小图范围之后,获取他的坐标(x,y)然后计算
x/小图的宽度*大图得宽度/2
y/小图的高度*大图得高度/2
计算出来的两个结果即为大图得左右偏移距离
/2是为了让右边区域不会出现空白。
经过测试,ie7以上以及主流浏览器都可以用,代码如下:
<div class="wrap"> <div class="small"> <img src="/UploadFiles/2021-04-02/1s.jpg">
.wrap{overflow:hidden;margin:50px auto;} .small{position:relative;float:left;width:214px;height:328px;} .tool{width:100px;height:100px;position:absolute;top:50px;left:100px;background:rgba(255,255,255,0.5);} .big{float:left;margin:0 40px;width:330px;overflow:hidden;height:328px;display:none;position:relative;} .big img{position:absolute;width:650px;height:960px;}主要的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}); });效果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
jquery,放大镜
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“jquery图片放大镜效果”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
20240727
20240727
- 丁当《日与夜,跟自己说晚安》[320K/MP3][98.51MB]
- 何炅.2005-漫游【中唱】【WAV+CUE】
- 何嘉莉.1998-MYDREAMS(EP)【飞图】【WAV+CUE】
- 群星.2019-天坑鷹猎电视剧原声带(EP)【智慧大狗】【FLAC分轨】
- 【雨果唱片】《春江花月夜》2020【WAV+CUE】
- 【正原唱片】女子十二乐坊《发烧国乐精粹-十二乐坊》WAV+CUE
- [黄翠珊]SusanWong-TheBestofSusanWong[WAV+CUE]
- 杜德伟.1995-BEST.LOVE(英)【滚石】【WAV+CUE】
- 杜德伟.1996-BEST.LOVE.2(英)【滚石】【WAV+CUE】
- 陈柏宇.2008-Change【SONY】【FLAC分轨】
- 丁当《日与夜,跟自己说晚安》[FLAC/分轨][285.42MB]
- 早安《Bubble Vision》[320KMP3][36.83MB]
- 叶振棠《叶振棠歌曲合集》[合集][MP3][145.9MB]
- [黄翠珊]SusanWong-ClosetoMe[SACD]dsf
- 中唱唱片群星《好歌珍藏-民歌精粹》2CD[WAV.]