详解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 相关文章推荐
前端开发的开始---基于面向对象的Ajax类
Sep 17 Javascript
基于jquery的网页SELECT下拉框美化代码
Oct 28 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
Jan 12 Javascript
利用JQuery动画制作滑动菜单项效果实现步骤及代码
Feb 07 Javascript
jquery validation验证身份证号,护照,电话号码,email(实例代码)
Nov 06 Javascript
Jquery之Bind方法参数传递与接收的三种方法
Jun 24 Javascript
JavaScript中解决多浏览器兼容性23个问题的快速解决方法
May 19 Javascript
详解浏览器渲染页面过程
Feb 09 Javascript
本地搭建微信小程序服务器的实现方法
Oct 27 Javascript
jQuery第一次运行页面默认触发点击事件的实例
Jan 10 jQuery
JavaScript前端页面搜索功能案例【基于jQuery】
Jul 10 jQuery
layui表格数据重载
Jul 27 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 Squid中可缓存的动态网页设计
2008/09/17 PHP
解析php中var_dump,var_export,print_r三个函数的区别
2013/06/21 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
vue项目中添加单元测试的方法
2018/07/21 Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
2019/12/01 Javascript
解决VUE项目使用Element-ui 下拉组件的验证失效问题
2020/11/07 Javascript
Python实现二分查找算法实例
2015/05/26 Python
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
详解python并发获取snmp信息及性能测试
2017/03/27 Python
python编程使用协程并发的优缺点
2018/09/20 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
浅谈python编译pyc工程--导包问题解决
2019/03/20 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
详解python中docx库的安装过程
2019/11/08 Python
python面向对象之类属性和类方法案例分析
2019/12/30 Python
用python介绍4种常用的单链表翻转的方法小结
2020/02/24 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
python中for in的用法详解
2020/04/17 Python
CSS3 2D模拟实现摩天轮旋转效果
2016/11/16 HTML / CSS
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
Maison Lab荷兰:名牌Outlet购物
2018/08/10 全球购物
商务英语专业应届毕业生求职信
2013/10/28 职场文书
应届生会计求职信
2013/11/11 职场文书
工程师岗位职责规定
2014/02/26 职场文书
市场营销调查计划书
2014/05/02 职场文书
工厂标语大全
2014/10/06 职场文书
关于学习的决心书
2015/02/05 职场文书
党小组鉴定意见
2015/06/02 职场文书