图片上传及放大

文章目录

  • 图片点击放大:jquery
  • 一、element获取图片
  • 二、在点击图片实现屏幕放大效果
    • 1.script层
  • 三、img显示
  • 总结


图片点击放大:jquery

提示:这里可以添加本文要记录的大概内容:

一、element获取图片

代码如下:

 /** 上传图片 */
    uploadImgs(){
      var formData = new FormData();
       /*alert("图片地址="+document.getElementById("imgUploadId").value);*/
       /*var imgUploadId = document.getElementById("imgUploadId").value;*/
       /*$("#imgUploadId")[0].files[0]*/
      //alert("图片地址="+$("#imgUploadId")[0].files);
      formData.append("stageFormData",$("#imgUploadId")[0].files[0]);
      uploadImg(formData).then(response=>{
        this.form.imgUrl = response;
        /*alert("imgurl="+this.form.imgUrl);*/
        this.$modal.msgSuccess("图片上传成功");

      })
    },

二、在点击图片实现屏幕放大效果

1.script层

代码如下(示例):

 //图片点击放大
    toBig(src){
      this.toBigImg(src);
    },
    toBigImg(src){
      /*alert("进来toBigImg");*/
      this.imgShow("#outerdiv", "#innerdiv", "#bigimg", src);
    },
    imgShow(outerdiv, innerdiv, bigimg, _this){
      /*alert("进来imgShow");*/
      var src;
      if(typeof _this == "string"){
        src = _this;
      }else{
        src = _this.attr("src");//获取当前点击的pimg元素中的src属性  
      }
      $(bigimg).attr("src", src);//设置#bigimg元素的src属性  
      /*获取当前点击图片的真实大小,并显示弹出层及大图*/
      $("").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");
      });
    },

三、img显示

代码如下:

 <el-table-column label="图片url" align="center"  prop="imgUrl">
        <template #default="scope">
<!--          <img :src="scope.row.imgUrl" min-width="70" height="70"/>
              onClick='toBigimgAdd(scope.row.imgUrl)'-->
<!--          <v-popover placement="left" trigger="hover" width="300">-->
<!--            <img :src="scope.row.imgUrl" width="100%" />-->
            <img
                slot="reference"
                :src="scope.row.imgUrl"
                style="min-width: 70px;height: 70px"
                @click="toBig(scope.row.imgUrl)"
            />
<!--          </v-popover>-->
        </template>
      </el-table-column>

总结

总结:主要是采用了element ui的形式
el-form 表单里面套template模板 #default=“scope” 是vue3的写法,可以获取组件内的数据 调用方式:scope.row.imgUrl

你可能感兴趣的:(javascript,html,前端)