1. 程式人生 > >點選圖片放大,再點選縮小的程式碼段

點選圖片放大,再點選縮小的程式碼段

這段js還挺常用,特此記錄。

 1 <form>
 2   <div>
 3         <div class="form-group left">
 4             <label for="imgs" class="col-sm-3 control-label">相關證件</label>
 5             <div class="col-sm-9" id="imgs" style="width: 88% !important;">
 6               <c:forEach items="${certificationimgs}" var
="imgs"> 7      <img class="pimg" src="${baseUrl}/system/file/selFile?f=${imgs.imgUrl}" width="100" height="100"/> 8    </c:forEach> 9 </div> 10 </div> 11   </div> 12 13 <div id="outerdiv" style="position:fixed;top:0;left:0;background:rgba(0,0,0,0.7);z-index:2;width:100%;height:100%;display:none;"> 14
   <div id="innerdiv" style="position:absolute;"> 15     <img id="bigimg" style="border:5px solid #fff;" src="" /> 16    </div> 17 </div> 18 </form> 19 20 <script> 21 $(function(){ 22 $(".pimg").click(function(){ 23 var _this = $(this
);//將當前的pimg元素作為_this傳入函式 24 imgShow("#outerdiv", "#innerdiv", "#bigimg", _this); 25 }); 26 }); 27 28 function imgShow(outerdiv, innerdiv, bigimg, _this){ 29 var src = _this.attr("src");//獲取當前點選的pimg元素中的src屬性 30 $(bigimg).attr("src", src);//設定#bigimg元素的src屬性 31 /*獲取當前點選圖片的真實大小,並顯示彈出層及大圖*/ 32 $("<img/>").attr("src", src).load(function(){ 33 var windowW = $(window).width();//獲取當前視窗寬度 34 var windowH = $(window).height();//獲取當前視窗高度 35 var realWidth = this.width;//獲取圖片真實寬度 36 var realHeight = this.height;//獲取圖片真實高度 37 var imgWidth, imgHeight; 38 var scale = 0.8;//縮放尺寸,當圖片真實寬度和高度大於視窗寬度和高度時進行縮放 39 40 if(realHeight>windowH){//判斷圖片高度 41 imgHeight = windowH*scale;//如大於視窗高度,圖片高度進行縮放 42 imgWidth = imgHeight/realHeight*realWidth;//等比例縮放寬度 43 if(imgWidth>windowW) {//如寬度扔大於視窗寬度 44 imgWidth = windowW*scale;//再對寬度進行縮放 45 } 46 } else if(realWidth>windowW) {//如圖片高度合適,判斷圖片寬度 47 imgWidth = windowW*scale;//如大於視窗寬度,圖片寬度進行縮放 48 imgHeight = imgWidth/realWidth*realHeight;//等比例縮放高度 49 } else {//如果圖片真實高度和寬度都符合要求,高寬不變 50 imgWidth = realWidth; 51 imgHeight = realHeight; 52 } 53 $(bigimg).css("width",imgWidth);//以最終的寬度對圖片縮放 54 55 var w = (windowW-imgWidth)/2;//計算圖片與視窗左邊距 56 var h = (windowH-imgHeight)/2;//計算圖片與視窗上邊距 57 $(innerdiv).css({"top":h, "left":w});//設定#innerdiv的top和left屬性 58 $(outerdiv).fadeIn("fast");//淡入顯示#outerdiv及.pimg 59 }); 60 61 $(outerdiv).click(function(){//再次點選淡出消失彈出層 62 $(this).fadeOut("fast"); 63 }); 64 } 65 66 </script>