jquery图片放大镜效果


Posted in jQuery onJune 23, 2017

昨天看一篇博文的时候,说到了这个效果,于是自己想试着写一个,没有使用插件,

基本的想法就是,左边是小图,右边对应大图,鼠标进去小图范围之后,获取他的坐标(x,y)然后计算

x/小图的宽度*大图得宽度/2

y/小图的高度*大图得高度/2

计算出来的两个结果即为大图得左右偏移距离

/2是为了让右边区域不会出现空白。

经过测试,ie7以上以及主流浏览器都可以用,代码如下:

<div class="wrap">
  <div class="small">
    <img src="1s.jpg">
    <div class="tool" id="tool"></div>
  </div>
  <div class="big"><img src="1.jpg"></div>
</div>

.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图片放大镜效果

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jquery实现提示语淡入效果
May 05 jQuery
jquery append与appendTo方法比较
May 24 jQuery
浅谈struts1 &amp; jquery form 文件异步上传
May 25 jQuery
jquery仿京东商品放大浏览页面
Jun 06 jQuery
jQuery选择器_动力节点Java学院整理
Jul 05 jQuery
jQuery简单实现向列表动态添加新元素的方法示例
Dec 25 jQuery
实现jquery放大镜的两种方法
Feb 22 jQuery
jQuery滚动条美化插件nicescroll简单用法示例
Apr 18 jQuery
jQuery中DOM操作原则实例分析
Aug 01 jQuery
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
Oct 26 jQuery
jQuery实现手风琴效果(蒙版)
Jan 11 jQuery
jquery插件实现轮播图效果
Oct 19 jQuery
jquery单击文字或图片内容放大并居中显示
Jun 23 #jQuery
QRCode.js:基于JQuery的生成二维码JS库的使用
Jun 23 #jQuery
详谈表单格式化插件jquery.serializeJSON
Jun 23 #jQuery
简单谈谈require模块化jquery和angular的问题
Jun 23 #jQuery
文本溢出插件jquery.dotdotdot.js使用方法详解
Jun 22 #jQuery
jQuery实现可拖动进度条实例代码
Jun 21 #jQuery
基于jquery日历价格、库存等设置插件
Jul 05 #jQuery
You might like
1.PHP简介
2006/10/09 PHP
用PHP制作静态网站的模板框架(三)
2006/10/09 PHP
php巧获服务器端信息
2006/12/06 PHP
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
jQuery ui1.7 dialog只能弹出一次问题
2009/08/27 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
python实现简单温度转换的方法
2015/03/13 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
介绍Python的Django框架中的QuerySets
2015/04/20 Python
python检查字符串是否是正确ISBN的方法
2015/07/11 Python
详解Python中的Descriptor描述符类
2016/06/14 Python
Python操作SQLite数据库的方法详解
2017/06/16 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
美国知名的在线旅游服务网站:Priceline
2016/07/23 全球购物
美国在线宠物商店:Chewy
2019/01/12 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
《长城》教学反思
2014/02/14 职场文书
学徒工职责
2014/03/06 职场文书
百年校庆节目主持词
2014/03/27 职场文书
个人年底工作总结
2015/03/10 职场文书
2015年度销售个人工作总结
2015/03/31 职场文书
生死牛玉儒观后感
2015/06/11 职场文书
小学运动会报道稿
2015/07/22 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
纪检部部长竞选稿
2015/11/21 职场文书
社区干部培训心得体会
2016/01/06 职场文书
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL