详解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 相关文章推荐
Ext JS 4官方文档之三 -- 类体系概述与实践
Dec 16 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
May 07 Javascript
用循环或if语句从json中取数据示例
Aug 18 Javascript
Eclipse引入jquery报错如何解决
Dec 01 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
Feb 16 Javascript
js 动态生成json对象、时时更新json对象的方法
Dec 02 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
Dec 16 Javascript
基于Vue 实现一个中规中矩loading组件
Apr 03 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
Nov 13 Javascript
JQuery获得内容和属性方法解析
May 30 jQuery
微信小程序实现日历签到
Sep 21 Javascript
Vue中使用import进行路由懒加载的原理分析
Apr 01 Vue.js
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 UTF8中文字符截断函数代码
2012/09/11 PHP
64位windows系统下安装Memcache缓存
2015/12/06 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
2020/08/06 PHP
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
2010/03/17 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
Angularjs自定义指令Directive详解
2017/05/27 Javascript
Vue脚手架的简单使用实例
2018/07/10 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
ES6 let和const定义变量与常量的应用实例分析
2019/06/27 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
django使用html模板减少代码代码解析
2017/12/12 Python
Windows上使用Python增加或删除权限的方法
2018/04/24 Python
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
python编辑用户登入界面的实现代码
2018/07/16 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
美国真皮手袋品牌:GiGi New York
2017/03/10 全球购物
财产公证书
2014/04/10 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
大学生见习报告范文
2014/11/03 职场文书
初中成绩单评语
2014/12/29 职场文书
2015年教师党员公开承诺书
2015/01/22 职场文书
2015年技术员工作总结
2015/04/10 职场文书
盗窃案辩护词
2015/05/21 职场文书
教师节简报
2015/07/20 职场文书
医德医风学习心得体会
2016/01/25 职场文书
《卖火柴的小女孩》教学反思
2016/02/19 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python