纯css实现任务头像叠加

需要实现下图这种这种样式,业务逻辑为: 5以下的人员根据数量展示头像,最多展示5个头像,纯css实现:

javascript 复制代码
//html
<view class="avatar-list-container">
                <view
                  class="avatar-item"
                  v-for="(avatar, index) in displayedAvatars"
                  :key="index"
                >
                  <image :src="avatar.src" class="avatar-image"></image>
                </view>
                <view
                  class="add-button"
                  @click="addUser"
                  v-if="baseInfo.employeeNum > 0"
                >
                  <image
                    src="https://sjfgdjkgfjdk.com/ae74f72b-a91e-42aa-9d95-ea2d4c61a030-20251016100147.png" // 举例展示的+ 号图片地址
                    class="add-icon"
                  ></image>
                </view>
              </view>
javascript 复制代码
// data定义
maxDisplayCount: 5,
 avatarsData: [],//头像存放的地址
javascript 复制代码
// 函数方法

// -----根据人数处理最多展示5分头像icon
displayedAvatars () {
      return this.avatarsData.slice(0, this.maxDisplayCount)
   }


// ------获取数据,根据人数包装展示数据
async queryComprehensiveInfo () {
      try {
        const res = await getComprehensiveInfo()

        if (res.data.code == 0) {
          this.baseInfo = res.data.data
          const listArrNum = res.data.data.employeeNum
          if (listArrNum > 0) {
            const defaultAvatar =
              'https://apzxcvbghnjm/13c6c06f-bed5-40ee-90db-35edd051499a-20251016100116.png' // 展示的头像地址,地址为举例
			// 根据展示的头像处理组装数据
            this.avatarsData = Array.from({ length: listArrNum }, () => ({
              src: defaultAvatar
            }))
            
          } else {
            this.avatarsData = []
          }
        }
      } catch (e) {
        console.log(e)
        uni.hideLoading()
      }
    }
javascript 复制代码
// 样式 css
.avatar-list-container {
    display: flex;
    align-items: center;
    position: absolute;
    right: -20px;
  }

  .avatar-item {
    margin-right: -70rpx;
    /* 实现头像重叠效果,负边距 */
    position: relative;
    z-index: 1;
    /* 确保后面的头像在前面 */

    &:last-child {
      margin-right: 0;
      /* 最后一个头像不重叠 */
    }
  }

  .avatar-image {
    width: 120rpx;
    height: 120rpx;
  }
.add-button {
    width: 130rpx;
    height: 130rpx;
    z-index: 5;
  }

按照以上就实现了~

相关推荐
开开心心就好4 天前
轻量级PDF阅读器,仅几M大小打开秒开
linux·运维·服务器·安全·pdf·1024程序员节·oneflow
学传打活7 天前
【边打字.边学昆仑正义文化】_12_生命价值的体现(1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
开开心心就好9 天前
小巧绿色免费关机工具,支持定时倒计时
linux·运维·服务器·安全·powerpoint·1024程序员节·foxmail
开开心心就好10 天前
跨平台高速下载工具,支持浏览器功能强大
运维·服务器·windows·pdf·旅游·媒体·1024程序员节
开开心心就好1 个月前
内存清理软件灵活设置,自动阈值快捷键清
运维·服务器·windows·pdf·harmonyos·risc-v·1024程序员节
学传打活1 个月前
【边打字.边学昆仑正义文化】_5_宇宙物种创造简史(1)
微信公众平台·1024程序员节·汉字·昆伦正义文化
xcLeigh1 个月前
打破机房围墙:VMware+cpolar构建跨网络虚拟实验室
vmware·内网穿透·cpolar·实验室·远程访问·1024程序员节
开开心心就好1 个月前
免费轻量电子书阅读器,多系统记笔记听书
linux·运维·服务器·安全·ddos·可信计算技术·1024程序员节
unable code1 个月前
流量包取证-大流量分析
网络安全·ctf·misc·1024程序员节·流量包取证