详解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 相关文章推荐
Jquery CheckBox全选方法代码附js checkbox全选反选代码
Jun 09 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
Apr 30 Javascript
实现placeholder效果的方案汇总
Jun 11 Javascript
Javascript模仿淘宝信用评价实例(附源码)
Nov 26 Javascript
JS折半插入排序算法实例
Dec 02 Javascript
自制微信公众号一键排版工具
Sep 22 Javascript
详解Angular.js指令中scope类型的几种特殊情况
Feb 21 Javascript
实例学习JavaScript读取和写入cookie
Jan 29 Javascript
Javascript的console['']常用输入方法汇总
Apr 26 Javascript
VeeValidate在vue项目里表单校验应用案例
May 09 Javascript
js之切换全屏和退出全屏实现代码实例
Sep 09 Javascript
node.js爬虫框架node-crawler初体验
Oct 29 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与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
PHP 如何获取二维数组中某个key的集合
2014/06/03 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
JavaScript 常用函数库详解
2009/10/21 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
js 函数调用模式小结
2011/12/26 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
jQuery(js)获取文字宽度(显示长度)示例代码
2013/12/31 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
关于使用axios的一些心得技巧分享
2017/07/02 Javascript
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
浅谈React Native 传参的几种方式(小结)
2019/05/21 Javascript
Nodejs中使用puppeteer控制浏览器中视频播放功能
2019/08/26 NodeJs
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
vue和iview实现Scroll 数据无限滚动功能
2019/10/31 Javascript
[01:52]PWL S2开团时刻第四期——DOTA2成语故事
2020/12/03 DOTA
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
详解Python中的Cookie模块使用
2015/07/06 Python
python实现beta分布概率密度函数的方法
2019/07/08 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
django框架cookie和session用法实例详解
2019/12/10 Python
Django model重写save方法及update踩坑详解
2020/07/27 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
CSS3制作酷炫的条纹背景
2017/11/09 HTML / CSS
小米官方旗舰店:Xiaomi
2020/08/07 全球购物
西部世纪面试题
2014/12/05 面试题
团日活动策划书
2014/02/01 职场文书
暑期社会实践方案
2014/02/05 职场文书
副董事长岗位职责
2014/04/02 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL
Java并发编程之原子性-Atomic的使用
2022/03/16 Java/Android