详解vue更改头像功能实现


Posted in Javascript onApril 28, 2019

详解vue更改头像功能实现

详解vue更改头像功能实现

如上图所示:需要完成的功能是点击更改头像,获取本地文件库,选择图片后将原始图片替换。这里我就直接用html文件引入vue来简单实现在这功能,代码如下:

HTML:

<div id="app">
 <div class="item_bock head_p">
   <div class="head_img">
    <img :src="userInfo.avatar"/>
    <--图片地址动态绑定-->
   </div>
   <div class="setting_right" @click.stop="uploadHeadImg">
    <div class="caption">更改头像</div>
   </div>
   <input type="file" accept="image/*" @change="handleFile" class="hiddenInput"/>
  </div>
 </div>

注意:

1.accept 属性用于限制图像的格式 如:(accept=”image/gif, image/jpeg”),accept=”image/*”表示不限制格式。
2.真正打开本地文件的是input,但这里是将其隐藏的。

JS:

var app = new Vue({
 el: '#app',
 data: {
  userInfo: {
   avatar: 'https://gss0.bdstatic.com/-4o3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike92%2C5%2C5%2C92%2C30/sign=62d46c39067b020818c437b303b099b6/d4628535e5dde7119c3d076aabefce1b9c1661ba.jpg'
  }
  // 初始图片
 },
 methods: {
  // 打开图片上传
  uploadHeadImg: function () {
   this.$el.querySelector('.hiddenInput').click()
  },
  // 将头像显示
  handleFile: function (e) {
   let $target = e.target || e.srcElement
   let file = $target.files[0]
   var reader = new FileReader()
   reader.onload = (data) => {
    let res = data.target || data.srcElement
    this.userInfo.avatar = res.result
   }
   reader.readAsDataURL(file)
  },
 }
})

注意:

  1.  1.this.$el.querySelector('.hiddenInput') 是获取文档中 class=”hiddenInput” 的元素。
  2. 2.在打开文件夹选中图片确认后,执行handleFile函数
  3. 3.let $target = e.target || e.srcElement 表示调用他的各种属性,两个的区别是:ie下支持e.srcElement,ff支持e.target。
  4. 4.由于手机上可以选择多张图片,所以let file = $target.files[0],表示取第一张图。
  5. 5.var reader = new FileReader() FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。
  6. 6.onload 事件会在页面或图像加载完成后立即发生。
  7. 7.FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL。

css:

.item_bock {
 display: flex;
 align-items: center;
 justify-content: space-between;
 height:94px;
 width: 300px;
 padding:0px 24px 0px 38px;
 border-bottom: 1px solid #f7f7f7;
 background: #fff;
}
.head_p {
 height:132px;
}
.head_img{
 height: 90px;
}
.head_img img{
 width:90px;
 height:90px;
 border-radius:50px
}
.setting_right{
 display: flex;
 height: 37px;
 justify-content: flex-end;
 align-items: center;
}
.hiddenInput{
 display: none;
}
.caption {
 color: #8F8F8F;
 font-size: 26px;
 height: 37px;
}

这里只是将图片显示出来,并没有保存起来,如果需要上传或者保存,需要后台接口配合。

以上所述是小编给大家介绍的vue更改头像功能实现详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
prototype 中文参数乱码解决方案
Nov 09 Javascript
jQuery select操作控制方法小结
May 26 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
Nov 10 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
Apr 10 Javascript
使用GruntJS构建Web程序之安装篇
Jun 04 Javascript
JavaScript中的逻辑判断符&amp;&amp;、||与!介绍
Dec 31 Javascript
jquery实现增加删除行的方法
Feb 03 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
Dec 04 Javascript
canvas实现简易的圆环进度条效果
Feb 28 Javascript
浅谈react.js中实现tab吸顶效果的问题
Sep 06 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
Jan 20 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
Apr 18 Javascript
Vue2(三)实现子菜单展开收缩,带动画效果实现方法
Apr 28 #Javascript
js+html5 canvas实现ps钢笔抠图
Apr 28 #Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
Apr 28 #Javascript
详解微信小程序调用支付接口支付
Apr 28 #Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
Apr 28 #Javascript
使用webpack编译es6代码的方法步骤
Apr 28 #Javascript
使用异步组件优化Vue应用程序的性能
Apr 28 #Javascript
You might like
在PHP中使用curl_init函数的说明
2010/11/02 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
javascript针对DOM的应用实例(一)
2012/04/15 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
getAsDataURL在Firefox7.0下无法预览本地图片的解决方法
2013/11/15 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
2017/07/13 Javascript
基于js 字符串indexof与search方法的区别(详解)
2017/12/04 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
简单的Python2.7编程初学经验总结
2015/04/01 Python
深入讲解Python中的迭代器和生成器
2015/10/26 Python
使用pandas read_table读取csv文件的方法
2018/07/04 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
Python模块常用四种安装方式
2020/10/20 Python
利用Python优雅的登录校园网
2020/10/21 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
数控技术应届生求职信
2013/11/13 职场文书
商务助理求职信范文
2014/04/20 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
关键在于落实心得体会
2014/09/03 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书
800字作文之大雪
2019/12/04 职场文书