小编mus*_*nov的帖子

从元素中删除类不会触发 css 动画

我正在为我的网站构建轮播(幻灯片)效果,但没有什么问题。每次图像更改时我都想制作淡入淡出效果。所以我为其添加了一个带有动画的类。问题来了。

该函数每 3 秒触发一次 ( setInterval)

let sliderInterval = setInterval(nextImg, 3000);

function nextImg() {
    imgChange(sliderNum + 1);
}

const heroImg = document.querySelector('.hero__image');

function imgChange(x) {
    heroImg.classList.remove("fade");
    sliderNum = (x + imgLocations.length) % imgLocations.length;
    heroImg.src = imgLocations[sliderNum];
    heroImg.classList.add("fade");
}
Run Code Online (Sandbox Code Playgroud)

淡入淡出效果:

.fade {
    animation: fade 1.5s ease-in-out;
}

@keyframes fade {
    from {opacity: .4}
    to {opacity: 1}
}

<div class="hero">
<img class="hero__image" src="photo1">
</div>
Run Code Online (Sandbox Code Playgroud)

它仅适用于第一个图像切换。尽管在函数开始时,它会删除fade我在函数中看到的类,它保留在元素中并且不会消失。hero我是否尝试将此效果放在该部分上或img其中并不重要。

javascript css animation class

4
推荐指数
1
解决办法
2101
查看次数

标签 统计

animation ×1

class ×1

css ×1

javascript ×1