Jquery ie9的过渡结束回退
我在jquery中使用以下代码来触发transitionend上的事件,并避免多个回调/支持多个浏览器:Jquery ie9的过渡结束回退,jquery,css,internet-explorer,css-transitions,transitionend,Jquery,Css,Internet Explorer,Css Transitions,Transitionend,我在jquery中使用以下代码来触发transitionend上的事件,并避免多个回调/支持多个浏览器: function whichTransitionEvent(){ var t; var el = document.createElement('fakeelement'); var transitions = { 'transition':'transitionend', 'OTransition':'oTransitionEnd',
function whichTransitionEvent(){
var t;
var 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];
}
}
}
(此处可找到代码:)
然而,无论前缀/语法如何,ie9似乎都不支持transitionend。当我在下面这样的场景中使用ie9(在动画完成后从DOM中删除加载屏幕)时,我将如何设置ie9的回退
我已经看到了一些关于如何使用与本文顶部类似的函数来防止多个回调的答案,但我只是不了解如何创建一个回调。谢谢你的帮助 var transitionEvent=whichTransitionEvent();
var transitionEvent = whichTransitionEvent();
// bind your event
$('#loading').one(transitionEvent, function(event) {
$('#loading').remove();
});
// if event not supported e.g. IE <= 9
if (! transitionEvent) {
$('#loading').trigger(transitionEvent);
}
//约束您的事件
$(“#加载”).1(传递事件,函数(事件){
$(“#加载”).remove();
});
//如果事件不受支持,例如IE,但如果执行了回退(transitionEvent
为undefined
),则您正在触发和undefined
事件!您应该检查顶部的transitionEvent
值,然后覆盖该值并执行其余操作
var transitionEvent = whichTransitionEvent();
// bind your event
$('#loading').one(transitionEvent, function(event) {
$('#loading').remove();
});
// if event not supported e.g. IE <= 9
if (! transitionEvent) {
$('#loading').trigger(transitionEvent);
}