【发布时间】:2020-06-03 04:03:48
【问题描述】:
我之前发过关于 CSS 关键帧动画的帖子,并尝试了一种使用延迟的不同方式。
我有 5 个 div 的 css 连续滑块,效果很好。但是我需要删除两个 div,所以只有三个。
.wrapper{
position: relative;
height: 330px;
display: grid;
overflow: hidden;
width:600px;
background:#f1f1f1;
}
.slide {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
animation: slider 9s cubic-bezier(0.5, 1, 0.5, 1) infinite;
color:#fff;
font-size:30px;
text-align:center;
padding-top:25%;
}
.slide:first-of-type {
animation-delay: -9s;
background:red;
}
.slide:nth-of-type(2) {
animation-delay: -6s;
background:blue;
}
.slide:last-of-type {
animation-delay: -3s;
background:black;
}
@keyframes slider {
0% {
transform: translateX(0);
opacity: 1;
}
16% {
transform: translateX(0);
opacity: 1;
}
20% {
transform: translateX(100%);
opacity: 1;
}
75% {
transform: translateX(100%);
opacity: 0;
}
76% {
transform: translateX(-100%);
opacity: 0;
}
96% {
transform: translateX(-100%);
opacity: 1;
}
}
<div class="wrapper">
<div class="slide">
1
</div>
<div class="slide">
2
</div>
<div class="slide">
3
</div>
</div>
所以我尝试将动画更改为 9 秒,每个 div 3 秒。 我已将 div 的延迟分别更改为 -9s、-6s、-3s,但在每个 div 滑入之间都有一个暂停。
我试图改变我认为我出错的百分比。
我想知道是否有人可以就我需要更改的百分比给我一些帮助,或者是否有一个公式可以使用,以便我将来可以根据需要切换 div 的数量?
【问题讨论】:
-
您的代码只有 3 个 div。当你只有 3 个时,为什么要提到你有 5 个?如果您只滑出一张图像并滑入另一张图像,则只需要 %s 来表示 0% 和 100%。仅当您想在动画期间更改特定点的行为时,才需要中间 % 值。
-
@TylerH 对我所指的 div 数量感到困惑,我已经在这方面编辑了问题。就动画而言,我需要一个滑入并暂时等待然后滑出,同时下一个 div 无缝滑入并使其不断循环。所以这就是为什么我有这些中间 % 值。
标签: css css-animations keyframe