详解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 相关文章推荐
Mootools 1.2教程 滑动效果(Slide)
Sep 15 Javascript
javascript多种数据类型表格排序代码分析
Sep 11 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
Dec 28 Javascript
js螺旋动画效果的具体实例
Nov 15 Javascript
jquery获取当前点击对象的value方法
Feb 28 Javascript
JavaScript实现页面5秒后自动跳转的方法
Apr 16 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
Jun 24 Javascript
JS及PHP代码编写八大排序算法
Jul 12 Javascript
解决vue+webpack打包路径的问题
Mar 06 Javascript
使用vue.js在页面内组件监听scroll事件的方法
Sep 11 Javascript
微信小程序自定义弹出层效果
May 26 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
Jun 19 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实现Ftp用户的在线管理
2012/02/16 PHP
利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
2014/01/14 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
php 广告点击统计代码(php+mysql)
2018/02/21 PHP
php中文语义分析实现方法示例
2019/09/28 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
JavaScript 实现??打印?理
2007/04/28 Javascript
浅析Js中的单引号与双引号问题
2013/11/06 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
JS数据类型STRING使用实例解析
2019/12/18 Javascript
Python tkinter模块弹出窗口及传值回到主窗口操作详解
2017/07/28 Python
Python实现string字符串连接的方法总结【8种方式】
2018/07/06 Python
Python多线程threading模块用法实例分析
2019/05/22 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
IronPython连接MySQL的方法步骤
2019/12/27 Python
python网络编程之五子棋游戏
2020/05/14 Python
python def 定义函数,调用函数方式
2020/06/02 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
html2canvas生成清晰的图片实现打印的示例代码
2019/09/30 HTML / CSS
什么是数组名
2012/05/10 面试题
管理学院毕业生自荐信范文
2014/03/10 职场文书
解除聘用合同证明书范本
2014/09/11 职场文书
夫妻吵架保证书
2015/05/08 职场文书
道士塔读书笔记
2015/06/30 职场文书
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
详解Golang如何优雅的终止一个服务
2022/03/21 Golang
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python