详解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 相关文章推荐
JavaScript 设计模式 富有表现力的Javascript(一)
May 26 Javascript
jquery实现通用版鼠标经过淡入淡出效果
Jun 15 Javascript
JavaScript来实现打开链接页面的简单实例
Jun 02 Javascript
基于jQuery实现中英文切换导航条效果
Sep 18 Javascript
JS取模、取商及取整运算方法示例
Oct 13 Javascript
JQuery EasyUI 结合ztrIee的后台页面开发实例
Sep 01 jQuery
node thread.sleep实现示例
Jun 20 Javascript
layui点击按钮添加可编辑的一行方法
Aug 15 Javascript
基于layPage插件实现两种分页方式浅析
Jul 27 Javascript
vue本地打开build后生成的dist文件夹index.html问题
Sep 04 Javascript
echarts实现折线图的拖拽效果
Dec 19 Javascript
js面向对象之实现淘宝放大镜
Jan 15 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记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
htm调用JS代码
2007/03/15 Javascript
AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)
2010/11/20 Javascript
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
JavaScript中九种常用排序算法
2014/09/02 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
2016/08/11 Javascript
全面解析node 表单的图片上传
2016/11/21 Javascript
浅谈html转义及防止javascript注入攻击的方法
2016/12/04 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
微信公众号平台接口开发 获取微信服务器IP地址方法解析
2019/08/14 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
python迭代器实例简析
2014/09/25 Python
Python正则抓取网易新闻的方法示例
2017/04/21 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
2019/07/26 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
房屋出售协议书
2014/04/10 职场文书
装修协议书范本
2014/04/21 职场文书
小学英语教师先进事迹
2014/05/28 职场文书
保研导师推荐信
2015/03/25 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers