【发布时间】:2021-01-17 18:52:04
【问题描述】:
考虑这样的div:
<div id="someid"></div>
它的风格:
#someid {
transition: background-color 10s ease;
background-color: #FF0000;
height: 100px;
width: 100px;
}
#someid:hover {
background-color: #FFFFFF;
}
如果可能的话,我希望有可能通过 JS 和/或结束动画来检测 #someid 的状态(当前是否动画)。我尝试了this answer 的一个东西:
document.querySelector("#someid").style.transition = "none";
但它不适用于当前的动画元素。
关键是我需要检测元素现在是否正在动画,如果是,则等待动画结束或立即结束,否则什么都不做
我已经foundtransitionend 事件,但使用它我无法检测元素是否正在动画。
【问题讨论】:
-
我可能错了,但我认为这不可能在运行时获得当前状态? stackoverflow.com/questions/51045403/…
-
@Crocsx 好的,但是是否可以删除过渡属性以便动画结束?
-
@fas 看看我的代码,它会在结束后立即删除转换,之后您将不再看到它。
-
@DipenShah 一结束就删除过渡我需要删除正在进行的过渡
-
您可以在使用 AnimationPlayState 运行时暂停,或者您可以将过渡设置为特定的 css 选择器,当您想强制停止动画时,您可以从 div 中删除该选择器。但是您在答案的评论中还有其他选择。但基本上用CSS你控制它,他不会为你更新^^
标签: javascript css css-transitions