大概效果就是这样

<div class="top-wrapper"><div class="top-left">// 显示头像的地方// imageView  这个是我自定义的组件,用 img 标签代替就可以了<div class="circle" @click="showChooseImg"><imageView :src="userImg"></imageView></div></div><div class="top-right"><div class="userinfo"><div class="user-name"><span>{{username}}</span></div><div class="user-word"><span v-if="unique">{{unique}}</span><span v-else style="color: #ccc;">这个人很懒,什么都没有说</span></div></div></div>
</div>
<transitionenter-active-class="fadeInDown"leave-active-class="fadeOutDown"><div class="default-img animated" v-show="showChooseAvatar"><ul><li v-for="item in imgList" :key="item.id"><img :src="item.imgUrl" alt="" width="100px" @click="chooseImg(item.imgUrl)"></li></ul></div>
</transition>
export default {props: {username: {type: String,default: ''},unique: {type: String,default: '这个人很懒,什么都没有说'}},data () {return {userImg: '',// 控制图片列表是否显示showChooseAvatar: false,// 图片列表,可以自己去网上下载几张想要的图片imgList: [{'id': 1,imgUrl: '/static/img/avatar01.jpg'},{'id': 2,imgUrl: '/static/img/avatar02.jpg'},{'id': 3,imgUrl: '/static/img/avatar03.jpg'},{'id': 4,imgUrl: '/static/img/avatar04.jpg'},{'id': 5,imgUrl: '/static/img/avatar05.jpg'},{'id': 6,imgUrl: '/static/img/avatar06.jpg'},{'id': 7,imgUrl: '/static/img/avatar07.jpg'},{'id': 8,imgUrl: '/static/img/avatar08.jpg'},{'id': 9,imgUrl: '/static/img/avatar09.jpg'}]}},components: {imageView},methods: {// 由于没有服务端提供相对应的服务,所以使用本地存储代替,// 当然,既然都是默认头像,也就无所谓了chooseImg (imgUrl) {localStorage.setItem('avatar', imgUrl)this.userImg = localStorage.getItem('avatar')this.showChooseAvatar = false},showChooseImg () {this.showChooseAvatar = true}},// 一定要在 mounted 的时候调用,不然刚刚进入页面的时候,头像就是空白的mounted () {this.userImg = localStorage.getItem('avatar')}
}

可以使用 vue 里面提供的动画,不过我这里使用的是 animate,这个库。只要下载放在你的项目里,之后再 main.js 里面引用即可
关注公众号:大明贵妇,无套路获取前端学习资料,期待各位客官来临

vue项目实现更换默认头像功能相关推荐

  1. 【vue】vue项目启动设置默认启动页

    当我们在启动vue项目时,默认打开的界面是白色的,需要输入正确的路由才能访问正确的页面.我们应该如何让项目打开的时候默认跳转到想启动的页面呢? 我们需要在router的index.ts(js)文件中设 ...

  2. Vue项目中添加锁屏功能

    0. 直接上 预览链接 Vue项目中添加锁屏功能 1. 实现思路 ( 1 ) 设置锁屏密码 ( 2 ) 密码存localStorage (本项目已经封装h5的sessionStorage和localS ...

  3. vue项目启动设置默认启动页

    当我们在启动vue项目时,默认打开的界面是白色的,需要输入正确的路由才能访问正确的页面.我们应该如何让项目打开的时候默认跳转到想启动的页面呢? 我们需要在router的index.ts(js)文件中设 ...

  4. vue项目中更换tinymce版本踩坑

    项目需求: vue项目中实现多图片批量上传功能 问题: tinymce富文本编辑器的多图片批量上传插件 支持版本:5.0.4+ 项目中现有的富文本编辑器版本:4.9.4 为实现这一功能选择更换tiny ...

  5. Vue项目中用户的头像展示

    效果展示: element中已经有对应的组件了,直接封装成公用的组件使用即可 在@/components/UploadImage/index.vue(注意我们要自定义上传,并上传到第三方服务器中,所以 ...

  6. 关于vue项目中的 日志管理功能

    项目场景: 后端:数据拿去,自己玩个日志管理页面出来 {"curent": {"ub_real_name": "测试账号","op ...

  7. vue项目使用LODOP打印小票功能

    毕业后第一份工作是做后台管理系统的,项目中要求有打印小票功能,然而我并不知道,该怎么写,百度了很多.一开始在网上查到很多都在用electron+vue我以为我可以用这个呢,搞了两天,才发现这是做桌面软 ...

  8. Vue项目中个人中心头像的上传方法

    我们实现的时点击头像栏这一整行都可以更换头像这个功能. 我们需要使用vant组件库中的Uploader文件上传组件. 即: <van-uploader :after-read="aft ...

  9. vue 项目实现发 邮件 的功能

    本文以QQ为例子, 其他邮箱参考:node_modules/nodemailer/well-known/services.json 新版本vue-cli 生成已经木有server的文件,需要我们手动来 ...

  10. vue项目实现鼠标拖拽功能

    <divid="back"@mousedown="draggableFun($event)"></div> //e.clientX和e. ...

最新文章

  1. iOS开发-UISwipeGestureRecognizer滑动手势
  2. Reactjs相比较原生方案是绝对的快吗?哪些情况下React有优势
  3. latex插入表格_如何将word表格变成LaTeX代码?
  4. php 面向对象 示例,php中面向对象示例
  5. FineUI 页面跳转
  6. mysql concat $_mysql concat 的诡异问题
  7. java用cmd编译access数据库_java直接存取MS Access的mdb数据库文件
  8. Reading HTML content from a UIWebView
  9. 【HTML5游戏开发小技巧】RPG情景对话中,令文本逐字输出
  10. Java面试易错题精选
  11. 嵌入式Linux开发板移植SSH
  12. 【转】haar特征简单分析
  13. 调试经验——使用VBA下载网络资源
  14. 中小企业OA系统视频教程(更新程度:完毕)送ppt源码
  15. 小米nfc怎么复制门禁卡
  16. 笔记本计算机回收站在哪里,笔记本电脑如何设置回收站自动清空
  17. neo4j之cypher使用文档
  18. 【剑指offer】BN层详解
  19. Hadoop 实战之分析专利引用数据集(一)
  20. iOS Password AutoFill开发指南

热门文章

  1. 山东理工ACM 1151 C语言实验——输出字符串
  2. ICQ官方中文版 v10.0.12161.0
  3. 罗振宇跨年演讲:哪来直接登顶的人生,只有不断迭代的历程
  4. php u8t canonical,php – configure:error:utf8_mime2text()具有新的签名,但U8T_CANONICAL缺少...
  5. mysql复制表的两种方法
  6. 常见的网站功能需求及解决方案
  7. 计算机组成原理指令存储器,《计算机组成原理》实验报告——指令存储、数据存储器...
  8. linux环境下如何重装系统,linux如何重装系统
  9. 坚持技术长征,阿里云要定义下一代的云
  10. RibbitMQ入门实战详解