Vue头像处理方案小结
程序员文章站
2022-06-14 13:43:00
个人思路
获取后台返回头像url,判断图片宽度,高度。
如果宽度>高度, 使其高度填充盒子 两边留白。
如果宽度<高度,使得宽度填充盒子 上下留白。
效...
个人思路
获取后台返回头像url,判断图片宽度,高度。
如果宽度>高度, 使其高度填充盒子 两边留白。
如果宽度<高度,使得宽度填充盒子 上下留白。
效果图:
缺陷:懒加载图片 会出现闪烁
代码实现
<template> // 外面要给一个div并且限制宽度和高度,text-align center,overflow hidden <div class="head"> // userinfolist.avatar 是后台返回给我的头像url <img v-lazy="userinfolist.avatar" id="userhead" alt=""/> </div> <div class="fl" v-for="(item, index) in matchlist" :key="index"> <div class="heads"> <img v-lazy="item.adatar" class="headitem" alt=""/> </div> </div > </template> <script> import { head, heads } from '@/assets/js/base' // 存放head,heads目录引入 export default { data(){ return { listquery:{ pg: 1, ps: 10 } }, methods:{ //获取用户详情 getuserinfolist(){ getlist('mobile/user/pers/detail', funciton(res) { if(data.code == err_ok){ _this.userinfolist = res.data // 单个头像处理,$nexttick处理去报 数据加载完成后 在进行图 _this.$nexttick(function () { head(res.data.avatar, 'userhead') }) // 下拉加载多个头像处理 res.data.item.foreach((item, index) => { if(_this.listquery.pg>1){ // 下拉加载时,头像依然要进行处理 let count = (10*(_this.listquery.pg -1) + index) _this.$nexttick(function () { heads(item.adatar, count, 'headitem') }) }else{ _this.$nexttick(function () { heads(item.adatar, index, 'headitem') }) } } _this.listquery.pg++ } }) }
assets文件js下的base.js
// 单个头像处理 export function head (objurl, id) { let _userhead = document.getelementbyid(id) if(_userhead){ if(objurl){ let img = new image() img.src = objurl img.onload = function () { let _width = img.width let _height = img.height if(_width >= _height){ _userhead.style.width = '100%' }else{ _userhead.style.height = '100%' } } }else{ _userhead.style.width = '100%' } } } // 多个头像处理 export function heads (objurl, index, classname) { let _heads = document.getelementsbyclassname(classname)[index] if(_heads){ if(objurl){ let img = new image() img.src = objurl img.onload = function () { let _width = img.width let _height = img.height if(_width >= _height){ _heads.style.width = '100%' }else{ _heads.style.height = '100%' } } }else{ _heads.style.width = '100%' } } }
总结
以上所述是小编给大家介绍的vue头像处理方案小结,希望对大家有所帮助
下一篇: PHP 枚举类型的管理与设计知识点总结