Vue transition 折叠类动画自动获取隐藏层高度以及手风琴效果实现

前面要说的话

前段时间,在解决左侧导航栏激活问题时,发现折叠动画过渡不是很平滑,并且还伴随着一些bug。使用起来不是很流畅,于是在解决完激活bug后,我决定把动画效果也解决掉。


先来看看要解决的问题,如下图:

最初的样式!
不知细心的你有没有发现什么问题?
当点击折叠展开menu-one栏目的时候没有什么问题,但点击折叠展开mene-two栏目,当动画定格在menu-two-2选项的时候,menu-two-3及以下的部分直接立即完成了过渡。为什么会这样?下面说原因。

上图实现代码:
  <!-- html部分 -->
  <transition name="sub-menu">
    <ul
      class="site-menu-sub"
      v-show="item.children && isOpen === aindex">
      <li
        v-for="(child, index) in item.children"
        :key="index"
        class="site-menu-item">
        <router-link
          class="animsition-link"
          :to="`/${child.href}`">
        </router-link>
      </li>
    </ul>
  </transition>
  <!-- css部分 -->
  .site-menu-sub {
   
    padding: 0px;
  }
  .sub-menu-enter-active,
  .sub-menu-leave-active {
   
    transition: all .3s ease;
    height: 70px; /* 这里70px为menu-one子菜单的高度 */
  }
  .sub-menu-enter,
  .sub-menu-leave-to
  {
   
    opacity: 0;
    height:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值