jquery - ie9 的过渡结束回退

标签 jquery css internet-explorer css-transitions transitionend

我使用以下带有 jquery 的代码来触发 Transitionend 事件并避免多个回调/支持多个浏览器:

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];
        }
    }
}

(此处找到的代码:http://davidwalsh.name/css-animation-callback)

但是,无论前缀/语法如何,ie9 似乎都不支持transitionend。当我在如下场景中使用 ie9 时,如何为 ie9 设置后备(在动画完成后从 DOM 中删除加载屏幕)?

$('#loading').one(transitionEvent, function(event) {
      $('#loading').remove();
});

我已经看到了几个关于如何使用与本文顶部类似的函数来防止多次回调的答案,但我只是不明白如何创建后备。感谢您的帮助!

最佳答案

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);
}

如果不支持该事件,该函数将返回一个假值(未定义)。

关于jquery - ie9 的过渡结束回退,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31172210/

相关文章:

html - 除了元素不显示

css - 在 IE 中使用 HTML5 Boilerplate 的滚动问题

javascript - 多个不同的 Javascript 错误无法复制

javascript - 类不听事件

javascript - 在 keyup 中设置输入值,停止触发更改事件

jquery - 基于 api 调用的样式按钮

html - ul li 显示 block 问题

html - 如何在超小型设备中重新排列自举网格

css - 字体无法在 IE 中访问的索引页面上正确呈现

java - 当我调用 selenium.waitForPageToLoad 时出现 Internet Explorer 脚本错误