详解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 相关文章推荐
Extjs学习笔记之三 extjs form更多的表单项
Jan 07 Javascript
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
jQuery获取选中内容及设置元素属性的方法
Jul 09 Javascript
node.js中的fs.unlinkSync方法使用说明
Dec 15 Javascript
javascript实现日期格式转换
Dec 16 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
Sep 18 Javascript
AngularJS实现自定义指令及指令配置项的方法
Nov 20 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
Feb 22 Javascript
javascript随机变色实例代码
Oct 15 Javascript
JavaScript 作用域scope简单汇总
Oct 23 Javascript
小程序采集录音并上传到后台
Nov 22 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
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如何透过ODBC来存取数据库
2006/10/09 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
ThinkPHP中关联查询实例
2014/12/02 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
ext读取两种结构的xml的代码
2008/11/05 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
js实现连个数字相加而不是拼接的方法
2014/02/23 Javascript
理解javascript回调函数
2014/12/28 Javascript
JavaScript中对象介绍
2014/12/31 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
详解JavaScript 的变量
2019/03/08 Javascript
在Django框架中设置语言偏好的教程
2015/07/27 Python
python+matplotlib绘制饼图散点图实例代码
2018/01/20 Python
Python实现购物车购物小程序
2018/04/18 Python
Python使用pandas处理CSV文件的实例讲解
2018/06/22 Python
python装饰器常见使用方法分析
2019/06/26 Python
如何表示python中的相对路径
2020/07/08 Python
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
资深财务管理人员自我评价
2013/09/22 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
餐厅总厨求职信
2014/03/04 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
党员先进事迹材料
2014/12/19 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
安全教育培训心得体会
2016/01/15 职场文书
《迟到》教学反思
2016/02/24 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
Fluentd搭建日志收集服务
2022/09/23 Servers