【发布时间】:2016-11-23 15:00:19
【问题描述】:
我在想。我知道我可以通过监听动画开始、动画迭代、动画结束事件(显然我们在那里缺少浏览器前缀)来检测 CSS 动画何时开始、结束或重复,例如:
document.getElementById('identifier')
.addEventListener("animationstart", function(){
// do something...
});
但我想知道,是否有可能确定我们在哪里运行 CSS 动画,例如,当我们处于 50% 的关键帧动画时,我可以如何监听:
<!DOCTYPE html>
<html>
<head>
<style>
#animateDiv {
width: 100px;
height: 100px;
background-color: red;
position: relative;
animation-name: example;
animation-duration: 4s;
}
@keyframes example {
0% {background-color:red; left:0px; top:0px;}
25% {background-color:yellow; left:200px; top:0px;}
50% {background-color:blue; left:200px; top:200px;}
75% {background-color:green; left:0px; top:200px;}
100% {background-color:red; left:0px; top:0px;}
}
</style>
</head>
<body>
<div id="animateDiv"></div>
<script>
// what do I do here? How do I listen for the 50% event of the keyframes?
document.getElementById('animateDiv').addEventListener('animation at 50%?', function() {
console.log('got it');
})
</script>
</body>
</html>
【问题讨论】:
-
我不这么认为。除非您在动画旁边运行并发计时器功能。
标签: javascript css css-animations