使用 CSS3 动画加快闪烁计时器
Speed up blink timer using CSS3 animation
我正在构建一个带有计时器(从 10 秒到 0 秒)的测验应用程序。当时间量接近 0 时,我希望我的文字闪烁得越来越快。当计时器大约为 10 秒时,我希望在剩余时间较少时减少 2 秒的过渡时间。
有没有办法用 CSS3 解决这个问题?
假设您正在使用具有以下 "blink"
的 CSS 动画
@keyframes blink{
0% {
opacity: 0
}
50% {
opacity: 1
}
100% {
opacity: 0
}
}
您可以指定 CSS 计时功能,如 ease-in
和 ease-out
以增加和减少速度:https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function。
自定义贝塞尔曲线计时将允许您微调速率。
你可以设置不同关键帧的动画,并将每个关键帧的持续时间设置得越来越短
div {
font-size: 40px;
-webkit-animation: blink 10s 2s;
animation: blink 10s 2s;
}
@-webkit-keyframes blink {
0% {color: blue;}
10% {color: yellow;}
20% {color: blue;}
29% {color: yellow;}
38% {color: blue;}
46% {color: yellow;}
54% {color: blue;}
61% {color: yellow;}
68% {color: blue;}
74% {color: yellow;}
80% {color: blue;}
85% {color: yellow;}
90% {color: blue;}
92% {color: yellow;}
94% {color: blue;}
96% {color: yellow;}
98% {color: blue;}
100% {color: yellow;}
}
@keyframes blink {
0% {color: blue;}
10% {color: yellow;}
20% {color: blue;}
29% {color: yellow;}
38% {color: blue;}
46% {color: yellow;}
54% {color: blue;}
61% {color: yellow;}
68% {color: blue;}
74% {color: yellow;}
80% {color: blue;}
85% {color: yellow;}
90% {color: blue;}
92% {color: yellow;}
94% {color: blue;}
96% {color: yellow;}
98% {color: blue;}
100% {color: yellow;}
}
<div>TEST</div>
我正在构建一个带有计时器(从 10 秒到 0 秒)的测验应用程序。当时间量接近 0 时,我希望我的文字闪烁得越来越快。当计时器大约为 10 秒时,我希望在剩余时间较少时减少 2 秒的过渡时间。
有没有办法用 CSS3 解决这个问题?
假设您正在使用具有以下 "blink"
的 CSS 动画@keyframes blink{
0% {
opacity: 0
}
50% {
opacity: 1
}
100% {
opacity: 0
}
}
您可以指定 CSS 计时功能,如 ease-in
和 ease-out
以增加和减少速度:https://developer.mozilla.org/en-US/docs/Web/CSS/animation-timing-function。
自定义贝塞尔曲线计时将允许您微调速率。
你可以设置不同关键帧的动画,并将每个关键帧的持续时间设置得越来越短
div {
font-size: 40px;
-webkit-animation: blink 10s 2s;
animation: blink 10s 2s;
}
@-webkit-keyframes blink {
0% {color: blue;}
10% {color: yellow;}
20% {color: blue;}
29% {color: yellow;}
38% {color: blue;}
46% {color: yellow;}
54% {color: blue;}
61% {color: yellow;}
68% {color: blue;}
74% {color: yellow;}
80% {color: blue;}
85% {color: yellow;}
90% {color: blue;}
92% {color: yellow;}
94% {color: blue;}
96% {color: yellow;}
98% {color: blue;}
100% {color: yellow;}
}
@keyframes blink {
0% {color: blue;}
10% {color: yellow;}
20% {color: blue;}
29% {color: yellow;}
38% {color: blue;}
46% {color: yellow;}
54% {color: blue;}
61% {color: yellow;}
68% {color: blue;}
74% {color: yellow;}
80% {color: blue;}
85% {color: yellow;}
90% {color: blue;}
92% {color: yellow;}
94% {color: blue;}
96% {color: yellow;}
98% {color: blue;}
100% {color: yellow;}
}
<div>TEST</div>