javascript - 如何重新触发功能(翻译动画)
问题描述
我的动画功能只运行一次。我试过删除和添加类,以及运行一个动画结束函数来创建一个重新触发。但仍然没有运气。任何香草JS的想法?
CSS:
#element {
width: 10px;
height: 10px;
animation: "";
@keyframes movedown {
100% {
transform: translateY(10px);
}
}
JS:
btn_button.onclick = () => {
element.style.animation = "movedown 10s";
};
HTML:
<div id="element"></div>
解决方案
您可以使用 setTimeout
设置element.style.animation
为""
。然后,您可以在单击按钮时再次添加动画名称。
let btn = document.querySelector("#btn");
btn.onclick = () => {
element.style.animation = "movedown 2s";
setTimeout(() => element.style.animation = "", 2000)
};
#element {
width: 10px;
height: 10px;
background-color: red;
}
@keyframes movedown {
100% {
transform: translateY(50px);
}
}
<div id="element"></div>
<button id="btn">Trigger</button>
推荐阅读
- cordova - 我应该在 Ionic 1.7.16 中使用什么版本的 Cordova
- python - Python - 数据框货币转换
- html - 如何从 iframe 读取响应
- complex-event-processing - 关于 esper CEP 的 match_recognize 语法的问题
- google-bigquery - Google Big Query 不仅仅显示项目特定的数据集
- c# - 无法使用 LINQ 连接从右侧列表中选择值
- python-3.x - 如何以所有可能的方式将列表划分为大小为 k 的子字符串
- robotframework - 使用ride.py 命令打开 RIDE(机器人框架 IDE)时出错
- react-native - 有什么方法可以在 React Native for iOS 中实现真正的暗模式?
- visual-studio - 特定于配置的 resw 资源字符串变体