详解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 相关文章推荐
JS JavaScript获取Url参数,src属性参数
Mar 09 Javascript
javascript中直接写php代码的方法
Jul 31 Javascript
javascript实现校验文件上传控件实例
Apr 20 Javascript
js生成随机数(指定范围)的实例代码
Jul 10 Javascript
原生JS取代一些JQuery方法的简单实现
Sep 20 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
Oct 31 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
Feb 20 Javascript
AngularJS Toaster使用详解
Feb 24 Javascript
jQuery中的deferred对象和extend方法详解
May 08 jQuery
Angular利用trackBy提升性能的方法
Jan 26 Javascript
微信小程序授权登录及解密unionId出错的方法
Sep 26 Javascript
微信小程序身份证验证方法实现详解
Jun 28 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
总集篇&特番节目先行播出!《SAO Alicization War of Underworld》第2季度TV动画4月25日放送!
2020/03/06 日漫
PHP中最容易忘记的一些知识点总结
2013/04/28 PHP
php连接Access数据库错误及解决方法
2013/06/20 PHP
php生成PDF格式文件并且加密
2015/06/22 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
用javascript实现画板的代码
2007/09/05 Javascript
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
javascript 表单规则集合对象
2009/07/21 Javascript
offsetParent 算法分析
2010/04/05 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
15个jquery常用方法、小技巧分享
2015/01/13 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
javascript瀑布流布局实现方法详解
2016/02/17 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
vue实现一个移动端屏蔽滑动的遮罩层实例
2017/06/08 Javascript
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
2020/08/12 Javascript
python实现探测socket和web服务示例
2014/03/28 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
奥兰多迪士尼门票折扣:Undercover Tourist
2018/07/09 全球购物
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
智乐游戏测试笔试题
2014/05/21 面试题
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
党员志愿者活动方案
2014/08/28 职场文书
假释思想汇报范文
2014/10/11 职场文书
管理失职检讨书范文
2015/05/05 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript