如何使用 CSS 自定义属性来播放和暂停 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-timingfunction。
我们将通过示例来理解上述概念。
示例 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 轻松控制。