pc端点击图片放大效果

来源:互联网 发布:笔记本电脑必备软件 编辑:程序博客网 时间:2024/06/15 06:43

1、在pc端会遇到点击图片,然后让页面添加蒙版,图片居中放大的效果


效果图如下




2、代码实现方式:问题解决


<!DOCTYPE html><html><head><meta charset="UTF-8"><title>图片放大</title><style type="text/css">body{background-color: #E8E8E8;}</style></head><body><img src="img/index-bg.jpg" class="img"/><img src="https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png"  class="img"/><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;">    <div id="innerdiv" style="position:absolute;">        <img id="bigimg" style="border:5px solid #fff;" src="" />    </div></div></body><script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script><script type="text/javascript">    $("body").on('click','img',function(){          var _this = $(this);//将当前的img元素作为_this传入函数          imgShow("#outerdiv", "#innerdiv", "#bigimg", _this);      });     function imgShow(outerdiv, innerdiv, bigimg, _this){          var src = _this.attr("src");//获取当前点击的pimg元素中的src属性          $(bigimg).attr("src", src);//设置#bigimg元素的src属性              /*获取当前点击图片的真实大小,并显示弹出层及大图*/          $("<img/>").attr("src", src).load(function(){              var windowW = $(window).width();//获取当前窗口宽度              var windowH = $(window).height();//获取当前窗口高度              var realWidth = this.width;//获取图片真实宽度              var realHeight = this.height;//获取图片真实高度              var imgWidth, imgHeight;              var scale = 0.8;//缩放尺寸,当图片真实宽度和高度大于窗口宽度和高度时进行缩放                            if(realHeight>windowH*scale) {//判断图片高度                  imgHeight = windowH*scale;//如大于窗口高度,图片高度进行缩放                  imgWidth = imgHeight/realHeight*realWidth;//等比例缩放宽度                  if(imgWidth>windowW*scale) {//如宽度扔大于窗口宽度                      imgWidth = windowW*scale;//再对宽度进行缩放                  }              } else if(realWidth>windowW*scale) {//如图片高度合适,判断图片宽度                  imgWidth = windowW*scale;//如大于窗口宽度,图片宽度进行缩放                              imgHeight = imgWidth/realWidth*realHeight;//等比例缩放高度              } else {//如果图片真实高度和宽度都符合要求,高宽不变                  imgWidth = realWidth;                  imgHeight = realHeight;              }                      $(bigimg).css("width",imgWidth);//以最终的宽度对图片缩放                            var w = (windowW-imgWidth)/2;//计算图片与窗口左边距              var h = (windowH-imgHeight)/2;//计算图片与窗口上边距              $(innerdiv).css({"top":h, "left":w});//设置#innerdiv的top和left属性              $(outerdiv).fadeIn("fast");//淡入显示#outerdiv及.pimg          });          $(outerdiv).click(function(){//再次点击淡出消失弹出层              $(this).fadeOut("fast");          });      }  </script></html>

3、简单处理的思路就是点击图片,蒙层出现,蒙层中图片居中,居中思路万能居中;

position: absolute;left: 0;top: 0;right: 0;bottom: 0;margin: auto;