如何使用 CSS 自定义属性播放和暂停 CSS 动画?

cssweb developmentfront end technology更新于 2024/1/12 16:44:17

在 SS 中,动画是为网站增添视觉效果的有效方法。然而,有时我们希望更好地控制这些动画的播放时间和方式。在这里,我们将探索如何使用 CSS 自定义属性播放和暂停 CSS 动画。

在继续之前,我们应该知道 CSS 动画可以通过使用关键帧或在两个或多个状态之间过渡来创建。

语法

@keyframes animation-name {
    /* 定义动画步骤 */
}

我们通过命名并使用 @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 控制的动态动画的方法。


相关文章


有用资源