jquery 圖片點(diǎn)擊放大預(yù)覽功能詳解
一個(gè)簡(jiǎn)單相冊(cè)預(yù)覽功能,可縮放可拖動(dòng),只是覺(jué)得這個(gè)功能應(yīng)該很常用,先記錄下來(lái)方便下次
代碼也都是我在項(xiàng)目中摳出來(lái)的,如果有什么問(wèn)題歡迎留言討論
html
圖片列表的樣式我就不寫(xiě)出來(lái)了 但是下面的class 和 布局結(jié)構(gòu) 都很重要:
<div> <div><img src="images/banner.jpg" ></div> <div><img src="images/banner.jpg" ></div> <div><img src="images/banner.jpg" ></div> <div><img src="images/banner.jpg" ></div> </div>
查看圖片的彈窗代碼(核心):
<div></div> <div> <div>×</div> <div> <ul > </ul> </div> <div> <div>?</div> <div>?</div> </div> </div>
彈窗的樣式
.seeImg_mask{ width:100%; height: 100%; position: fixed; top: 0px; bottom: 0px; left: 0px; right: 0px; background: rgba(0,0,0,0.7); margin: auto; z-index: 999; display: none; } .seeImg_popup{ width: 80%; height: 80%; background: #fff; position: fixed; bottom: 200%; left: 10%; right: 0px; margin: auto; border: 10px rgba(0,0,0,0.2) solid; border-radius: 10px; z-index: 9999; } .seeImg_close{ width: 40px; height: 40px; line-height: 35px; text-align: center; font-size: 28px; color: #fff; position: absolute; right: 0px; top: 0px; background: rgba(226, 36, 36, 0.72); cursor: pointer; } .seeImg_swrieb{ width: 90%; height: 100%; margin: 0px auto; position: relative; overflow: hidden; } .seeImg_list{ height: 100%; width: auto; display: flex; flex-direction: row; transition: all 0.5s; } .seeImg_list li{ height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; overflow: hidden; } .seeImg_list li img{ height: 90%;display: block;position: absolute; top: -160px;cursor: all-scroll; -webkit-touch-callout: none; /* iOS Safari */ -webkit-user-select: none; /* Chrome/Safari/Opera */ -khtml-user-select: none; /* Konqueror */ -moz-user-select: none; /* Firefox */ -ms-user-select: none; /* Internet Explorer/Edge */ user-select: none; /* Non-prefixed version, currently not supported by any browser */ padding: 200px 0px; z-index: 555; } .seeImg_fun{ width: 100%; height: 40px; line-height: 40px; display: flex; flex-direction: row; justify-content: space-between; box-sizing: border-box; padding: 0px 15px; position: absolute; top: 0px; bottom: 0px; left: 0px; right: 0px; margin: auto; } .fun_label{ font-size: 50px; color: #777; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
js部分
$(document).on("click",".seeimg",function(){ $(".seeImg_list li").remove(); var seeImglistLiLeng = $(this).parents(".imgnyr").children(".img-list").length; $(".seeImg_popup").attr("data",seeImglistLiLeng) var arrtimg = []; $(this).parents(".imgnyr").children(".img-list").each(function(i){ var imgse = $(this).children("img").attr("src"); arrtimg.push(imgse) }); for( var i in arrtimg){ var html =""; html +="<li><img src=" +arrtimg[i]+ " class='enlarge' draggable='false' onmousewheel='return bbimg(this)' /></li>"; $(".seeImg_list").append(html) } var seeImgswriebWight = $(".seeImg_swrieb").width(); var seeImglistWigth = seeImgswriebWight * seeImglistLiLeng; console.log(seeImglistWigth) $(".seeImg_mask").show(); $(".seeImg_popup").css("bottom","10%"); $(".seeImg_list").width(seeImglistWigth) $(".seeImg_list").css("margin-left","0px") $(".seeImg_list li").width(seeImgswriebWight) $(".seeImg_list").children("li").each(function(i){ $(this).children("img").attr("data",i) $(this).children("img").addClass("maxdom"+i) }) }) $(document).on("click",".seeImg_close",function(){ $(".seeImg_mask").hide(); $(".seeImg_popup").css("bottom","200%"); }) var UlMarRig = 0; $(document).on("click",".labelRight",function(){ var roue = $(".seeImg_swrieb").width(); var mes = $(".seeImg_popup").attr("data"); var csdx = roue * mes; console.log(csdx) UlMarRig = UlMarRig - roue; if( UlMarRig <= -csdx){ UlMarRig = 0; } $(".seeImg_list").css("margin-left", UlMarRig) }) $(document).on("click",".labelLeft",function(){ var emgd = $(".seeImg_swrieb").width(); var aas = $(".seeImg_popup").attr("data"); var ddx = emgd * aas; if( UlMarRig == 0){ UlMarRig = -ddx; } UlMarRig = UlMarRig + emgd; $(".seeImg_list").css("margin-left", UlMarRig) }) var ment = 90; function bbimg(o){ var zoom=parseInt(o.style.zoom, 10)||100; zoom+=event.wheelDelta/12; console.log(zoom) if(zoom>=110){ ment = ment +10; o.style.height = ment +'%'; } if(zoom<110){ ment = ment -10; o.style.height = ment +'%'; } // console.log(ment) } $(document).on("mousedown",".enlarge",function(e){ var u = $(this).attr("data"); // e.pageX var imtLeft = $(this).position().left; var imtTop = $(this).position().top; var distenceX = e.pageX - imtLeft; //記錄鼠標(biāo)點(diǎn)擊的位置與div左上角水平方向的距離 var distenceY = e.pageY - imtTop; //記錄鼠標(biāo)點(diǎn)擊的位置與div左上角數(shù)值方向的距離 $(document).mousemove(function(e){ var x = e.pageX - distenceX; var y = e.pageY - distenceY; if(x<0){ x= x ; }else if(x>$(document).width()-$('.maxdom'+u).outerWidth(true)){ x = $(document).width()-$('.maxdom'+u).outerWidth(true); } if(y<0){ y= y; }else if(y>$(document).height()-$('.maxdom'+u).outerHeight(true)){ y = $(document).height()-$('.maxdom'+u).outerHeight(true); } $('.maxdom'+u).css({'left':x+'px','top':y+'px'}); }); $(document).mouseup(function(){ $(document).off('mousemove'); //移除鼠標(biāo)移動(dòng)事件 }); })
感興趣的朋友可以使用如下在線運(yùn)行工具測(cè)試上述代碼運(yùn)行效果:
http://tools.jb51.net/code/HtmlJsRun
http://tools.jb51.net/code/WebCodeRun
- jQuery實(shí)現(xiàn)等比例縮放大圖片讓大圖片自適應(yīng)頁(yè)面布局
- 基于jquery的防止大圖片撐破頁(yè)面的實(shí)現(xiàn)代碼(立即縮放)
- jQuery+css實(shí)現(xiàn)的點(diǎn)擊圖片放大縮小預(yù)覽功能示例【圖片預(yù)覽 查看大圖】
- jQuery實(shí)現(xiàn)鼠標(biāo)滑過(guò)商品小圖片上顯示對(duì)應(yīng)大圖片功能【測(cè)試可用】
- jQuery實(shí)現(xiàn)鼠標(biāo)滑過(guò)預(yù)覽圖片大圖效果的方法
- jQuery實(shí)現(xiàn)大圖輪播
- jQuery實(shí)現(xiàn)的小圖列表,大圖展示效果幻燈片示例
- jquery插件jquery.LightBox.js實(shí)現(xiàn)點(diǎn)擊放大圖片并左右點(diǎn)擊切換效果(附demo源碼下載)
- jQuery實(shí)現(xiàn)點(diǎn)擊小圖片淡入淡出顯示大圖片特效
- jQuery實(shí)現(xiàn)點(diǎn)擊查看大圖并以彈框的形式居中
- 基于jQuery插件實(shí)現(xiàn)點(diǎn)擊小圖顯示大圖效果
- jquery實(shí)現(xiàn)移動(dòng)端點(diǎn)擊圖片查看大圖特效
- jQuery實(shí)現(xiàn)點(diǎn)擊小圖顯示大圖代碼分享
相關(guān)文章
jQuery學(xué)習(xí)之prop和attr的區(qū)別示例介紹
prop和attr的區(qū)別你知道嗎?在本文有些不錯(cuò)的示例對(duì)兩者詳細(xì)介紹,感興趣的朋友不要錯(cuò)過(guò)2013-11-11jquery仿蘋(píng)果的時(shí)間/日期選擇效果
本篇文章主要介紹了jquery仿蘋(píng)果的時(shí)間/日期選擇效果的實(shí)例,具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03解決jQuery ajax請(qǐng)求在IE6中莫名中斷的問(wèn)題
本文主要介紹jQuery ajax請(qǐng)求在IE6中莫名中斷問(wèn)題的解決方法,有需要的朋友可以參考一下。2016-06-06jQuery插件echarts設(shè)置折線圖中折線線條顏色和折線點(diǎn)顏色的方法
這篇文章主要介紹了jQuery插件echarts設(shè)置折線圖中折線線條顏色和折線點(diǎn)顏色的方法,結(jié)合實(shí)例形式分析了jQuery圖表插件echarts設(shè)置折線圖的相關(guān)操作技巧,需要的朋友可以參考下2017-03-03使用jquery mobile做幻燈播放效果實(shí)現(xiàn)步驟
使用jquery mobile,可以很容易實(shí)現(xiàn)幻燈播放效果,擺脫繁雜的步驟輕松實(shí)現(xiàn),接下來(lái)介紹,有需要的朋友可以參考下2013-01-01jquery 判斷div show的狀態(tài)實(shí)例
下面小編就為大家?guī)?lái)一篇jquery 判斷div show的狀態(tài)實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,祝大家游戲愉快哦2016-12-12