gpt4 book ai didi

javascript - Vue转场使用不当?

转载 作者:行者123 更新时间:2023-11-30 20:42:59 28 4
gpt4 key购买 nike

我有一个元素通过每 3 秒换出 imgsrc 来充当图像轮播:

JS

data() {

return {

carousel: {

images: [
"/images/beauty.png",
"/images/dance.png",
"/images/funny.png",
"/images/sweet.png"
],
currentNumber: 0,
timer: null
}
}
}

methods: {
startRotation: function() {
this.carousel.timer = setInterval(this.next, 3000);
},
next: function() {
this.carousel.currentNumber += 1
}
}

标记

<div class="grid__slide">
<div class="grid__slide-inner" v-for="number in [carousel.currentNumber]">
<transition
name="ease-out-transition"
leave-active-class="fadeOut"
mode="out-in"
>
<img :src="carousel.images[Math.abs(carousel.currentNumber) % carousel.images.length]">
</transition>
</div>
</div>

CSS

@keyframes fadeOut {
from {
opacity: 1;
}

to {
opacity: 0;
}
}

.fadeOut {
-webkit-animation-name: fadeOut;
animation-name: fadeOut;
-webkit-animation-duration: 500ms;
animation-duration: 500ms;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
animation-iteration-count: 1;
animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
}

img 元素的转换外,其他所有功能均正常运行。关于为什么它无效的任何建议?

最佳答案

如章节 "Transitioning Between Elements" in the documentation about <transition> 中所述, 你需要添加一个 :key 尝试在同一类型的多个元素之间转换时的元素。

<img
:src="carousel.images[Math.abs(carousel.currentNumber) % carousel.images.length]"
:key="Math.abs(carousel.currentNumber) % carousel.images.length"
>

之所以需要这个是因为没有 key属性,Vue 尝试优化应用程序的速度,而不是交换图像元素,它只是更改 src属性指向您的新图像。

关于javascript - Vue转场使用不当?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49046000/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com