CSS 如何自定义属性播放和暂停CSS动画
在网站中,动画是增添视觉效果的有效方式。然而,有时我们希望对这些动画的播放时间和方式有更多的控制。在这里,我们将探讨如何使用CSS自定义属性来播放和暂停CSS动画。
在我们继续之前,我们应该知道CSS动画可以使用关键帧创建,也可以通过在两个或更多状态之间进行过渡来创建。
语法
@keyframes animation-name {
/* define the animation steps */
}
我们通过给动画命名并使用 @keyframes 关键字来定义动画。在大括号中,我们使用百分比或关键字值来定义动画的步骤。
在CSS中播放和暂停动画
在CSS中,播放和暂停动画是指控制动画元素的能力。这是给网站添加动态和视觉趣味的一种方式。
播放和暂停动画允许我们控制何时以及如何播放这些动画。如果我们希望用户能够暂停动画以便集中精力,这将非常有用。
在CSS中,我们可以使用 animation-play-state 属性来控制动画是运行还是暂停。默认情况下,animation-play-state 属性被设置为 running,这意味着当页面加载时动画将自动播放。然而,我们可以使用CSS更改此属性的值以在任何时间开始或停止动画。
要使用CSS创建播放和暂停动画效果,可以按照以下步骤进行操作:
步骤1:定义动画
在第一步中,我们需要定义要控制的动画。我们可以使用关键帧创建一个简单的动画。
步骤2:创建播放和暂停效果
在定义动画之后,我们需要创建控制动画的元素。我们可以使用任何HTML元素,例如按钮、复选框和悬停效果。
步骤3:定义CSS自定义属性
现在,我们需要定义用于保存动画状态的CSS自定义属性。我们可以为自定义属性使用任何名称,但在此示例中,我们将使用–animation-play-state和–animation-timing-function。
我们将通过示例来理解上述概念。
示例1
下面是一个如何创建幻灯片简单动画的示例。
<!DOCTYPE html>
<html>
<head>
<style>
body { text-align: center;}
.box {
display: flex;
height: 80px;
width: 80px;
border-radius: 10%;
color: white;
background-color: green;
position: relative;
animation: my-animation 6s infinite;
}
.box:hover { animation-play-state: paused;}
@keyframes my-animation {
from {left: 0px;}
to {left: 400px;}
}
</style>
</head>
<body>
<h2>A simple animation of a slide</h2>
<div class="box">Mouse Hove to give me a break.</div>
</body>
</html>
示例2
下面是另一个示例,演示如何使用CSS自定义属性来播放和暂停CSS动画。
<!DOCTYPE html>
<html>
<head>
<style>
body { text-align: center; }
.box {
align-items: center;
background-color: green;
display: flex;
height: 80px;
width: 80px;
margin-top: 10px;
border-radius: 10%;
}
.my-slide {--animdur: 5s; --animn: slide; }
[my-animation] {
animation: var(--animn, none) var(--animdur, 0s) var(--animtf,
linear) var(--animic, infinite) var(--animdir, alternate) var(--animps,
running);
}
[my-animation-pause]:checked~[my-animation] {
--animps: paused;
}
@keyframes slide {
from { margin-left: 0%;}
to {margin-left: calc(100% - 80px);}
}
</style>
</head>
<body>
<input type="checkbox" my-animation-pause id="move" class="#" />
<label for="move" class="#">Check Me to play/paus</label>
<div class="box my-slide" my-animation="stop"></div>
</body>
</html>
结论
使用CSS自定义属性来播放和暂停CSS动画为控制网页上的动画提供了一种简单高效的方法。在第一个示例中,我们使用关键帧动画来定义动画,并使用animation-play-state属性来控制其状态。在第二个示例中,我们使用过渡动画并更改自定义属性的值来控制动画的状态。这两种方法都提供了一种创建可以通过CSS轻松控制的动态动画的方式。