详解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的Pager分页器实现代码
Jul 17 Javascript
js+html+css实现鼠标移动div实例
Jan 30 Javascript
jquery 动态创建元素的方式介绍及应用
Apr 21 Javascript
jquery提交form表单时禁止重复提交的方法
Feb 13 Javascript
用JS在浏览器中创建下载文件
Mar 05 Javascript
JS获取html元素的标记名实现方法
Oct 08 Javascript
BootStrap 实现各种样式的进度条效果
Dec 07 Javascript
jQuery Ajax File Upload实例源码
Dec 12 Javascript
JavaScript 自定义事件之我见
Sep 25 Javascript
jQuery实现使用sort方法对json数据排序的方法
Apr 17 jQuery
Vue项目数据动态过滤实践及实现思路
Sep 11 Javascript
微信小程序实现单列下拉菜单效果
Apr 25 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
使用prototype.js 的时候应该特别注意的几个问题.
2007/04/12 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
JS中的phototype详解
2017/02/04 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
Python3多线程操作简单示例
2018/05/22 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
python实现按行分割文件
2019/07/22 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
Python 程序报错崩溃后如何倒回到崩溃的位置(推荐)
2020/06/23 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
上班睡觉检讨书
2014/01/09 职场文书
搞笑获奖感言
2014/01/30 职场文书
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
促销活动总结怎么写
2014/06/25 职场文书
个人授权委托书模板
2014/09/14 职场文书
病人慰问信范文
2015/02/15 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python