Vue3 内容展开收起动画过渡效果

内容css

  overflow: hidden;
  transition: height 0.3s;
  height: 0;

计算内容高度

const collapseHeight = ref<number[]>([]); // 内容高度
const contentRef = ref(); // 内容ref实例对象
watchEffect(
  () => {
    const len = sectionList.value.length;
    if (len) {
      getCollapseHeight(len); // 获取各个面板内容高度
    }
  },
  { flush: 'post' }
);
const getCollapseHeight = (len: number) => {
  for (let n = 0; n < len; n++) {
    collapseHeight.value.push(contentRef.value[n].offsetHeight);
  }
};

内容dom(item.expand 展开用内容高度,收起变为0)

   <div
        class="内容css"
        :style="`height: ${item.expand ? collapseHeight[index] : 0}px;}`"
   >

参考链接
Vue3折叠面板(Collapse)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值