zoukankan      html  css  js  c++  java
  • js实现点击图片 弹出放大效果

    <div class="listBody" id="banner">
      <div class="pic" >
         <a href="#" style="display:block"><img alt="" style="height: 175px; 100%;" src="${ctxStatic}/images/1_1.png" /></a>
         <a href="#"><img alt="" style="height: 175px; 100%;" src="${ctxStatic}/images/1_2.jpg" /></a>
      </div>
      <div class="btn">
         <ul>
            <li class="one">1</li>
            <li>2</li>
         </ul>
       </div>
       <div id="outerdiv" style="position:fixed;top:0;left:0;background:rgba(0,0,0,0.7);z-index:2;100%;height:100%;display:none;">
           <div id="innerdiv" style="position:absolute;">
               <img id="bigimg" style="border:5px solid #fff;" src="" />
           </div>
       </div>
    </div>
    
    
    
    
        $("#banner a").each(function(){//div中的为轮播图 需要遍历出来绑定click事件
            $(this).click(function(){
                var _this = this.firstChild;//将当前的pimg元素作为_this传入函数  传入参数为img标签
                imgShow("#outerdiv", "#innerdiv", "#bigimg", _this); 
            })
        })
        function imgShow(outerdiv, innerdiv, bigimg, _this){ 
            var src = _this.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.9;//缩放尺寸,当图片真实宽度和高度大于窗口宽度和高度时进行缩放 
              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"); 
            }); 
          }

        //第二种方式

      <div id="outerdiv" style="position:fixed;top:0;left:0;background:rgba(0,0,0,0.7);z-index:2;100%;height:100%;display:none;">

        <div id="innerdiv" style="position:absolute;">
          <img id="bigimg" style="border:5px solid #fff;" src="" />
        </div>
      </div>

    <a href='#'>
      <img id='imgId' style=' 140px;height: 190px;' onclick='openPicture("图片地址")'/>
    </a>

    function openPicture(fileURI){
      var src = fileURI;//获取当前点击的pimg元素中的src属性
      var buttonHeight=$("#inputForm2").height();
      $("#bigimg").attr("src", src);//设置#bigimg元素的src属性
      $("#bigimg").css("display", "block");//设置#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;//再对宽度进行缩放
            imgHeight = imgHeight*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+buttonHeight;//计算图片与窗口上边距
        $("#innerdiv").css("display", "block");
        $("#innerdiv").css({"padding-top":h, "padding-left":w});//设置#innerdiv的top和left属性
        $("#outerdiv").fadeIn("fast");//淡入显示#outerdiv及.pimg
      });
      $("#outerdiv").click(function(){//再次点击淡出消失弹出层
        $(this).fadeOut("fast");
        $("#innerdiv").css("display", "none");
      });
    }

     
  • 相关阅读:
    Flutter移动电商实战 --(40)路由_Fluro的全局注入和使用方法
    Flutter移动电商实战 --(39)路由_Fluro的路由配置和静态化
    Flutter移动电商实战 --(38)路由_Fluro中Handler编写方法
    Flutter移动电商实战 --(37)路由_Fluro引入和商品详细页建立
    网络基础:NetBIOS
    linux 定时任务
    linux useradd 命令基本用法
    Git undo 操作
    Git 查看文件的历史
    Ubuntu14.04安装postgresql9.4
  • 原文地址:https://www.cnblogs.com/ljc1212/p/12059820.html
Copyright © 2011-2022 走看看