点击图片放大,再点击缩小的代码段

这段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> 

猜你喜欢

转载自www.cnblogs.com/April1995/p/9979359.html