【发布时间】:2023-04-01 18:43:01
【问题描述】:
我正在创建一个 css 关键帧动画,其中一个图像将滑入,停放一分钟,然后在下一张图像滑入时滑出,这将在“无限”循环中运行(只要父元素上有一个'animate'类,通过js滚动切换)。
到目前为止,我 (https://jsfiddle.net/WhiskeyT/Lurkf4f6/) 存在两个问题:
首先,所需的时间似乎很简单 - 总动画持续时间为 3 秒,图像 1、2 和 3 动画持续时间设置为 0、3 秒、6 秒 - 但现有图像之间似乎存在轻微延迟或间隙以及进入的图片,非常想收紧。尽管进行了数小时的调整,但我似乎无法将关键帧调整为更接近我的目标的东西。
第二个问题更加明显和明显:3 张图片动画,并且随着动画循环,只有第 3 张图片重复加载。
非常感谢任何帮助。
威士忌酒。
<div class="slide" id="slide-02">
<div class="image-rotator">
<img src="img1.jpg" alt="img" />
<img src="img2.jpg" alt="img" />
<img src="img3.jpg" alt="img" />
</div>
</div><!-- #slide-02 -->
.slide {
width: 100%;
height: 100vh;
position: relative;
}
#slide-02 .image-rotator {
position: relative;
width: 50%;
max-width: 450px;
height: 100%;
overflow: hidden;
}
#slide-02.animate .image-rotator img {
position: absolute;
top: 0;
left: -450px; // I remain confused as to how init rule collides w/0% keyframe ;(
width: 100%;
height: 100%;
}
#slide-02.animate .image-rotator img:nth-child(1) { animation: imgRotator 3s ease-in-out infinite 0s; }
#slide-02.animate .image-rotator img:nth-child(2) { animation: imgRotator 3s ease-in-out infinite 3s; }
#slide-02.animate .image-rotator img:nth-child(3) { animation: imgRotator 3s ease-in-out infinite 6s; }
@keyframes imgRotator {
0% {
opacity: 0;
left: 450px;
}
15%, 84% {
opacity: 1;
left: 0;
}
100% {
opacity: 0;
left: -450px;
}
}
【问题讨论】:
标签: css css-animations keyframe