详解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自动闭合html标签(自动补全html标记)
Oct 04 Javascript
JavaScript 模拟类机制及私有变量的方法及思路
Jul 10 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
Sep 24 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
Jan 20 Javascript
JavaScript:Date类型全面解析
May 19 Javascript
JavaScript简单获取页面图片原始尺寸的方法
Jun 21 Javascript
漂亮实用的页面loading(加载)封装代码
Feb 03 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
Mar 29 Javascript
vue上传图片组件编写代码
Jul 26 Javascript
手把手教你写一个微信小程序(推荐)
Oct 17 Javascript
使用axios请求接口,几种content-type的区别详解
Oct 29 Javascript
vue.js this.$router.push获取不到params参数问题
Mar 03 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
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
header跳转和include包含问题详解
2012/09/08 PHP
php实现的RSS生成类实例
2015/04/23 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
Yii2使用swiftmailer发送邮件的方法
2016/05/03 PHP
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
PHP命名空间namespace的定义方法详解
2017/03/29 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
laravel 判断查询数据库返回值的例子
2019/10/11 PHP
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
JavaScript中setUTCFullYear()方法的使用简介
2015/06/12 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
介绍Python中内置的itertools模块
2015/04/29 Python
以一个投票程序的实例来讲解Python的Django框架使用
2016/02/18 Python
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
python实现超市商品销售管理系统
2019/11/22 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
python3代码中实现加法重载的实例
2020/12/03 Python
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
护士实习自我鉴定
2013/10/22 职场文书
国际贸易专业个人求职信范文分享
2013/12/14 职场文书
大学生演讲稿范文
2014/01/11 职场文书
通信研究生自荐信
2014/02/01 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
活动总结新闻稿
2014/08/30 职场文书
住宿生擅自离校检讨书
2014/09/22 职场文书
语文教师个人工作总结
2015/02/06 职场文书