1

Я использую следующий код JQuery, чтобы вызвать события на transitionend и избежать многократного обратного вызова/поддержка нескольких браузеров:Переход Конец Запасной для IE9

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 не поддерживает переход, независимо от префикса/синтаксиса. Как мне настроить резерв для ie9, когда я использую его в сценарии следующего вида (чтобы удалить экран загрузки из DOM после завершения анимации)?

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

Я видел несколько ответов о том, как предотвратить несколько обратных вызовов, используя аналогичную функцию к одному в верхней части этого поста, но я просто не понимая, как создать запасной вариант. Спасибо за вашу помощь!

ответ

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

Функция возвращает значение falsy (undefined), если событие не поддерживается.

+0

, но если выполняется резервное копирование ('transitionEvent' является' undefined'), то вы запускаете и 'undefined' событие! – guari

+0

, вы должны проверить значение 'transitionEvent' вверху, а затем переопределить значение и сделать остальное – guari

 Смежные вопросы

  • Нет связанных вопросов^_^