zoukankan      html  css  js  c++  java
  • 注册时头像预览功能的实现

    注册时头像预览功能的实现

    用户注册上传头像图片预览

    效果展示

     

    avatar

     

    核心代码实现

    隐藏文件上传元素

    <div class="form-group">
        <label class="col-sm-2 control-label">头像</label>
        <div class="col-sm-8">
            <label for="id_avatar"><img id="avatar-img" src="/static/img/default.png" alt=""></label>
            <input accept="image/*" type="file" name="avatar" id="id_avatar" style="display: none">
            <span class="help-block"></span>
        </div>
    </div>
    

    注意:

    1. 真正的上传头像文件的 input 标签设置了 style="display: none" 来隐藏上传框。
    2. input 标签中设置了 accept="image/*" ,表示只能上传图片类型的文件。
    3. input 标签前面的 label 标签中设置了 or="id_avatar" 意在点击该 label 标签时上传文件的 input 标签同样获得触发。
    4. input 标签前面的 label 标签嵌入了 img 标签,设置了一个默认的头像图片,该 img 标签才是真正显示图片的。

    绑定并显示预览

    // 找到头像的input标签绑定change事件
    $("#id_avatar").change(function () {
        // 1. 创建一个读取文件的对象
        var fileReader = new FileReader();
        //读取所选文件,需要一定时间
        fileReader.readAsDataURL(this.files[0]);
        fileReader.onload = function () {
            // 2. 读完文件后再讲图片加载到img标签中
            $("#avatar-img").attr("src", fileReader.result);
        };
    });
    

    注意:

    1. FileReader 是可以读取文件的类,由它来存储读取的头像图片文件。
    2. 读取文件需要一定的时间,所以对 FileReader 对象设置 onload 方法,意在读取文件完毕后再设置 img 的 src 属性

    GitHub 地址:https://github.com/protea-ban/oldboy/tree/master/s9day76/bbs

  • 相关阅读:
    swiper 内容超出纵向滚动 解决办法
    js判断 微信浏览器 或者 QQ内置浏览器
    移动端滑动 增加弹性 滑动更加顺畅
    移动端点击激活时背景色
    文字两端对齐
    移动端元素被选中时,去除背景
    CSS动画 防止动画结束后,回归原位
    centos 防火墙配置
    知识图谱研究
    jmeter 压测工具
  • 原文地址:https://www.cnblogs.com/banshaohuan/p/9573667.html
Copyright © 2011-2022 走看看