繁体   English   中英

确定任意元素是否正在使用CSS3动画

[英]Determine if an Arbitrary Element is Using CSS3 Animation

我正在为Web应用程序制作小部件。 当用户在窗口小部件中选择某些内容时,我将使用CSS动画将其隐藏,然后根据选择更改页面中的某些内容。 我使用animationend事件在继续之前等待。

小部件可以具有多个主题,这意味着有人可能选择不使用CSS动画。 我想尽可能地将逻辑和表示分开,所以我希望避免让其他主题使用JS。

如何处理我不知道是否存在动画的事实?

我希望做以下类似的事情,但是在文档中找不到像isAnimating这样的东西。

elem.classList.add('hide');
if(elem.isAnimating()) {
    elem.addEventListener('animationend', callback);
} else {
    callback();
}

您可以使用animationstart事件。

var anmtn = false;
, switcher = function(){anmtn = !anmtn})
elem.addEventListener('animationstart', switcher);
elem.addEventListener('animationend', switcher);

//Poll for animation.
var e = setInterval(function() {
  if( anmtn )
  //code
},62)

那应该工作。 未经测试!

对于更简洁的轮询,请使用:

MDN: https : //developer.mozilla.org/en-US/docs/Web/Events/animationstart

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM