+
80
-

Web Animation API 怎么实现动画控制效果?

Web Animation API 怎么实现动画控制效果?


网友回复

+
0
-

Web Animation API 是用于创建和控制 Web 动画的 API,它提供了更多控制动画的能力。下面是一个简单的示例代码,演示如何使用 Web Animation API 来创建和控制一个简单的动画效果。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
  <style>
    /* 定义一个基本的样式,将在动画中改变 */
    #animated-element {
      width: 100px;
      height: 100px;
      background-color: red;
    }
  </style>
</head>
<body>
  <div id="animated-element"></div>

  <script>
    const element = document.getElementById('animated-element');
    
    // 创建一个 keyframes 动画
    const keyframes = [
      { transform: 'translateX(0)' },
      { transform: 'translateX(200px)' },
    ];

    // 创建一个动画效果
    const animation = element.animate(keyframes, {
      duration: 1000, // 动画持续时间
      iterations: Infinity, // 无限次重复
      direction: 'alternate', // 反向重复
      easing: 'ease-in-out', // 缓动函数
    });

    // 添加控制按钮
    const startButton = document.createElement('button');
    startButton.textContent = '开始动画';
    startButton.addEventListener('click', () => {
      animation.play(); // 开始动画
    });
    
    const pauseButton = document.createElement('button');
    pauseButton.textContent = '暂停动画';
    pauseButton.addEventListener('click', () => {
      animation.pause(); // 暂停动画
    });

    const reverseButton = document.createElement('button');
    reverseButton.textContent = '反向动画';
    reverseButton.addEventListener('click', () => {
      animation.reverse(); // 反向动画
    });

    document.body.appendChild(startButton);
    document.body.appendChild(pauseButton);
    document.body.appendChild(reverseButton);
  </script>
</body>
</html>

这个示例创建了一个在水平方向上往返移动的动画,通过 animate() 方法创建了一个动画实例,并使用按钮来控制动画的播放、暂停和反向。可以根据需要更改动画的参数以及添加其他控制方法。
我知道答案,我要回答