vue动画,transition标签的 mode="out-in" 属性不起作用?

发布于 2022-09-06 09:53:08 字数 1292 浏览 25 评论 0

vue自带的动画实现了淡入淡出的效果,但是transition属性mode="out-in"不起作用,导致动画消失显示出现了重叠,我希望动画消失和显示之间有一定的事件间隔,问题出在哪儿呢?

              <transition name="fade" mode="out-in">
                  <div class="sider-item item1" v-if="curIdx == 0">
                      animation 1111
                  </div>
              </transition>
              <transition name="fade" mode="out-in">
                <div class="sider-item item2" v-if="curIdx == 1">
                    animation 2222
                </div>
              </transition>

css如下:

    //消失时间持续3s
    .fade-enter-active{
      transition: all 3s;
    }

    //显示时间持续1.5s
    .fade-leave-active{
      transition: all 1.5s;        
    }

    .fade-enter, .fade-leave-active{
        opacity: 0;
    }

改成如下方式也无效:

//transition 添加属性 duration
<transition name="fade" mode="out-in" :duration="{ enter: 1000, leave: 3000 }">
</transition>

//css对应修改为
    .fade-enter-active{
      transition-property: all;
    }

    .fade-leave-active{
      transition-property: all; 
    }

    .fade-enter, .fade-leave-active{
        opacity: 0;
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

暗喜 2022-09-13 09:53:08

在显示动画中,加上动画延时,这样就不会出现同步和重叠的情况,
但这样会有一种情况就是初始化的时候会慢,如果想要解决,还可以初始化后给他们加上一个class,
然后.fade-enter-active.xxxx 两个class都有就加上动画延时,transtion-delay,就能解决

送舟行 2022-09-13 09:53:08
    .fade-enter-active{
      transition: all 1.5s;
      transition-delay: 2s;
    }

    .fade-leave-active{
      transition: all 2.5s;
    }

    .fade-enter, .fade-leave-active{
        opacity: 0;
    }

这样可以了,但是为什么 transition标签属性mode="out-in" 为什么不起作用呢?

金兰素衣 2022-09-13 09:53:08

如下写法
<transition name="fade" mode="out-in">

              <div class="sider-item item1" v-if="curIdx == 0" key="key1">
                  animation 1111
              </div>
              <div class="sider-item item2" v-if="curIdx == 1" key="key2">
                animation 2222
            </div>

</transition>
需要key标识,二者不同。
默认判断使用的是 标签名。
有key 优先判断key。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文