您可以侦听transitionend
在 element 上触发的事件,该事件表示img.button
CSS 转换的结束。但是,由于浏览器对 的支持transitionend
不完整(尽管所有最新版本的 Chrome、Firefox 和 Safari 都本机支持transitionend
而没有供应商前缀),您应该使用此脚本来找出实际支持的事件。
关于标记,我强烈建议避免使用内联 JS,而是设置一个事件监听器。
<a href="#" id="closeWindow"><img class="button" src="http://placehold.it/100x100" /></a>
我的脚本还假设img.btn
页面上可能有多个元素,因此我们必须遍历与选择器匹配的所有元素。如果不是这种情况,您可以简单地使用document.querySelector
并放弃循环。
// Determine which transntionend event is supported
function whichTransitionEvent() {
var t,
el = document.createElement("fakeelement");
var transitions = {
"transition" : "transitionend",
"OTransition" : "oTransitionEnd",
"MozTransition" : "transitionend",
"WebkitTransition": "webkitTransitionEnd"
}
for (t in transitions){
if (el.style[t] !== undefined){
return transitions[t];
}
}
}
var customTransitionEnd = whichTransitionEvent();
// Get button
var btns = document.querySelectorAll('img.btn:active'),
i;
for (i = 0; i < btns.length; ++i) {
btns[i].addEventListener(customTransitionEnd, function(e) {
e.preventDefault();
alert('Transition End');
// window.close();
});
}