【发布时间】:2017-01-08 06:51:31
【问题描述】:
我正在尝试向元素添加animationend 事件,但该事件没有被触发。我做错了什么,我该如何解决?
var btn = document.getElementById('btn');
var elem = document.getElementById('elem');
var timeOutFunc;
btn.addEventListener('click', function() {
elem.classList.add('show');
clearTimeout(timeOutFunc);
timeOutFunc = setTimeout(function() {
elem.classList.remove('show')
}, 1000);
});
elem.addEventListener('animationend', function(e) {
console.log('animation ended');
});
#elem {
background-color: orange;
width: 100px;
height: 100px;
opacity: 0;
transition: opacity 500ms ease;
}
#elem.show {
opacity: 1;
transition: none;
}
<button id="btn">Press Me</button>
<div id="elem"></div>
【问题讨论】:
-
动画在哪里?我在您的代码中没有找到任何动画 css 脚本?
-
@prasad 没有动画,但有一个
transition。当不透明度发生变化时,css 会对其进行动画处理。每当show被删除时,它就会转换。 -
不是动画事件,它只是改变了类。过渡!=动画看我的答案
-
在任何情况下你修复了你的代码...... addEventListener 不会在 IE 6.7.8 上运行
-
@AlirezaMasali 我不是针对那些。
标签: javascript dom-events