国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

jquery圖片放大鏡效果

2019-11-19 16:15:51
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

昨天看一篇博文的時(shí)候,說(shuō)到了這個(gè)效果,于是自己想試著寫(xiě)一個(gè),沒(méi)有使用插件,

基本的想法就是,左邊是小圖,右邊對(duì)應(yīng)大圖,鼠標(biāo)進(jìn)去小圖范圍之后,獲取他的坐標(biāo)(x,y)然后計(jì)算

x/小圖的寬度*大圖得寬度/2

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

計(jì)算出來(lái)的兩個(gè)結(jié)果即為大圖得左右偏移距離

/2是為了讓右邊區(qū)域不會(huì)出現(xiàn)空白。

經(jīng)過(guò)測(cè)試,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;      //滾動(dòng)條距離屏幕左邊的寬度      var scrollY = document.documentElement.scrollTop || document.body.scrollTop;      //滾動(dòng)條距離屏幕上面的高度      //e.pageX相對(duì)于文檔左邊的高度      //e.pageY相對(duì)于文檔上面的高度      //e.clientX相對(duì)于屏幕左邊的高度      //e.clientY相對(duì)于屏幕上面的高度      var xx = e.pageX || e.clientX + scrollX;//相對(duì)于文檔左邊的寬度      var yy = e.pageY || e.clientY + scrollY;//相對(duì)于文檔上面的高度      //.offset().top元素相對(duì)于文檔上面的位置      //.offset().left元素相對(duì)于文檔左面的位置      var y=yy-$(this).offset().top;//鼠標(biāo)相對(duì)于元素的x,y坐標(biāo)      var x=xx-$(this).offset().left;      var width=$(this).width();      var lwidth=$(this).siblings('.big').find('img').width();      //按照大圖與小圖的比例來(lái)進(jìn)行移動(dòng)的      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);      //不加蒙版放大鏡結(jié)束      //蒙版跟著動(dòng)      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});    });

效果如下:

 以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 云浮市| 江陵县| 青海省| 洞头县| 水富县| 鹰潭市| 通化市| 宾阳县| 昭苏县| 长治县| 含山县| 钟山县| 宜都市| 忻城县| 朝阳县| 吴江市| 巴里| 河曲县| 商南县| 崇礼县| 蒲城县| 锡林浩特市| 新龙县| 桦甸市| 长乐市| 灌阳县| 启东市| 开鲁县| 石家庄市| 青阳县| 彩票| 阿拉善左旗| 犍为县| 蕉岭县| 丰镇市| 汪清县| 讷河市| 通州区| 灵武市| 偃师市| 樟树市|