如何使用按钮强制清除无限运行中的animation动画
时间: 2024-03-19 20:45:44 浏览: 18
你可以使用 JavaScript 和 CSS 来清除无限运行中的 CSS 动画。以下是一种可能的解决方案:
HTML:
```
<button id="my-button">停止动画</button>
<div id="my-element" class="my-animation">这是一个带有动画效果的 div 元素。</div>
```
CSS:
```
/* 定义动画效果 */
@keyframes my-animation {
0% { opacity: 0; }
100% { opacity: 1; }
}
/* 定义动画类 */
.my-animation {
animation: my-animation 1s ease-in-out infinite;
}
```
JavaScript:
```
// 获取按钮和元素
var button = document.getElementById("my-button");
var element = document.getElementById("my-element");
// 添加点击事件处理程序
button.addEventListener("click", function() {
// 移除动画类
element.classList.remove("my-animation");
// 延迟 1 毫秒后重新添加动画类
setTimeout(function() {
element.classList.add("my-animation");
}, 1);
});
```
在这个示例中,我们首先定义了一个名为 `my-animation` 的 CSS 类,它包含了一个使用 `@keyframes` 定义的简单动画效果,并且它是无限运行的。然后,我们在 HTML 中将一个带有 `my-animation` 类的 div 元素插入到文档中,并添加了一个按钮。在 JavaScript 中,我们获取了按钮和元素,并为按钮添加了一个点击事件处理程序。在事件处理程序中,我们使用 `classList.remove()` 方法来移除元素的 `my-animation` 类,从而停止动画效果。然后,我们使用 `setTimeout()` 方法来延迟 1 毫秒,然后再次为元素添加 `my-animation` 类,从而重新启动动画效果。这个延迟很重要,因为它允许浏览器在删除和添加类之间重新绘制元素,并重新启动动画。