zoukankan      html  css  js  c++  java
  • vue实现头像上传并实时预览

    工作笔记记录

    效果图:

    HTML部分:

     <div class="head-img">
         <input type="file"  id="upload" style="display:none;" accept="image/gif,image/jpeg,image/png,image/jpg" @change="freshImg"/>
         <div class="border"  @click="uploadIMg">{{headTip}}<img :src="imgsrc" class="imgDiv"></div>
     </div>

    JS部分:

    data(){
      return {
         imgsrc:require('../../assets/img/defaultImg.jpg'),         //用户没有上传图片的默认头像
           headTip: "点击上传头像",
      }
    }
    methods:{
      uploadIMg:function(){
          document.getElementById('upload').click();
       },        
      freshImg:function(e){
          let _this = this;
          _this.imgObj = e.target.files['0'];               //得到上传的第一个文件
          let fr = new FileReader();                        //异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容
          fr.onload=function(){                             //在读取操作完成时触发
            _this.imgsrc = fr.result;                       // 图片文件赋值给图片标签路径
          }
          fr.readAsDataURL(_this.imgObj);                   //将读取到的文件编码成Data URL
          _this.headTip='';                                 // 清空我的提示
        }
    }

    注意:

    FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL。

    Data URL是一项特殊的技术,可以将资料(例如图片)内嵌在网页之中,不用放在外部文件。使用Data URL的好处是,不需要额外再发出一个HTTP请求到服务器端取得额外资料

    缺点:

      网页的大小可能会变大,它适合应用在内嵌小图片,不建议将大图像编码成Data URL来使用。图像文件不能超过浏览器限定的大小,否则无法读取图像文件。

    CSS[LESS]部分

     .head-img {
        text-align: center;
        margin-bottom: 0.2rem;
        .border {
          display: inline-block;
          width: 5rem;
          height: 5rem;
          border-radius: 50%;
          border: 1px solid #c3c3c3;
          overflow: hidden;
          line-height: 5rem;
          text-align: center;
            position: relative;
          .imgDiv {
            width: 100%;
            height: 100%;
            position: absolute;
            left:0;
            top:0;
            border-radius:50%;
            -webkit-border-radius:50%;
            -moz-border-radius:50%;
            z-index: -1;
          }
        }
      }

     感谢myt_Never的博客 更多详细,请看:https://blog.csdn.net/myt_Never/article/details/80106426

  • 相关阅读:
    页面时如何加载的
    Node的运行
    js 和css 的压缩工具。
    js 判断ie
    208-Servlet初始化是什么?
    207-乐观锁与悲观锁?
    206-navicat一直连接不上mycat是怎么回事?
    205-springboot如何集成reids?
    204-jdbc如何连接数据库
    203-全局变量char的默认值是多少?
  • 原文地址:https://www.cnblogs.com/feng-xl/p/9317636.html
Copyright © 2011-2022 走看看