为了延迟动画,我们使用 CSS animation-delay 属性,它指定元素被加载和动画开始之间的时间。
但是在延迟动画时可能会遇到一些困难,例如动画播放后元素消失的问题。
让我们看看这个问题的解决方案。
具有 CSS 属性的解决方案
在下面的例子中,有一个 <div> 元素,它的类是“animation”。
首先,我们添加@keyframes(我们在@keyframes 中使用-webkit 和-mozprefixes)。
对于我们的@keyframes,我们使用百分比并在 0%、40% 和 100% 处指定顶部、左侧和背景属性。
然后,我们通过设置“动画”类的宽度和高度并添加带有“相对”值的位置属性来设置“动画”类的样式。
我们通过 animation 属性指定延迟(5s)并将 animation-fill-mode 属性设置为其“none”值。
使用 animation 和 animation-fill-mode 属性延迟动画的示例:
<!DOCTYPE html>
<html>
<head>
<title>文档的标题</title>
<style>
@-webkit-keyframes background {
0% {
top: 0;
left: 0;
background: #5bd97d;
}
40% {
top: 100px;
left: 50px;
background: pink;
}
100% {
top: 50px;
left: 50px;
background: purple;
}
}
@-moz-keyframes background {
0% {
top: 0;
left: 0;
background: #5bd97d;
}
40% {
top: 100px;
left: 150px;
background: pink;
}
100% {
top: 50px;
left: 50px;
background: purple;
}
}
@keyframes background {
0% {
top: 0;
left: 0;
background: #5bd97d;
}
40% {
top: 100px;
left: 150px;
background: pink;
}
100% {
top: 50px;
left: 100px;
background: purple;
}
}
.animation {
height: 100px;
width: 100px;
position: relative;
-webkit-animation: background 5s infinite;
-moz-animation: background 5s infinite;
animation: background 5s infinite;
animation-fill-mode: none;
}
</style>
</head>
<body>
<div class="animation"></div>
</body>
</html>
结果
在我们的下一个示例中,我们使用带有@keyframes 的“from”和“to”关键字而不是百分比,并指定动画起点和终点的不透明度。
其中我们将 animation-fill-mode 属性设置为其“forwards”值。
创建延迟动画的示例:
<!DOCTYPE html>
<html>
<head>
<title>文档的标题</title>
<style>
@-webkit-keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-moz-keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
#animation1 {
height: 120px;
width: 120px;
background: #5bd97d;
opacity: 0;
-webkit-animation: fadein 1s ease-in alternate;
-moz-animation: fadein 1s ease-in alternate;
animation: fadein 1s ease-in alternate;
animation-delay: 1s;
animation-fill-mode: forwards;
}
</style>
</head>
<body>
<div id="animation1"></div>
</body>
</html>
animation-fill-mode 属性用于在动画未播放时为元素设置样式。
此处的“forwards”值用于指定元素必须保留由最后一个关键帧设置的样式值。
日期:2020-06-02 22:15:03 来源:oir作者:oir
