2013-05-31 2 views
5

Есть ли способ обнаружить в моем Javascript, если элемент в настоящее время анимируется с переходом CSS3?Проверьте, работает ли переход CSS3

«Переходное начало» -эвент (эквивалент «события транзистора») также будет работать, но я не могу найти упоминания об этом в спецификации.

+1

http://stackoverflow.com/questions/2794148/css3-transition-events, http://stackoverflow.com/questions/ 7264899/detect-css-transitions-using-javascript-and-without-modernizr? – coma

+1

Это, к сожалению, мало помогает, так как ответы в первой ссылке сосредоточены на «транзисторе», а вторая ссылка просто обсуждает обнаружение функции для css3-транзисторов. :/ – johnny

+0

Вы нашли мой ответ полезным? – coma

ответ

2

Ну, так как есть только событие transitionend (http://www.w3.org/TR/css3-transitions/#transition-events) что-то некрасиво приходит на ум:

http://jsfiddle.net/coma/psbBg/6/

JS

$(function() { 

    var div = $('div'); 
    var property = div.css('transition-property'); 
    var lastValue = div.css(property); 

    setInterval(function() { 

     if(lastValue !== div.css(property)) { 

      console.log('changed!'); 

     } 

     lastValue = div.css(property); 

    }, 10); 

}); 

Это может быть улучшено реализации пользовательских событий, заботиться о том, чтобы получить правильное свойство перехода (или свойства) и другие идеи, но вы правильно поняли изображение?

Может быть, вам нужно взять другой путь на решении вашей исходной задачи ...

+2

Я думаю, вы хотели проверить свойство «transform», а не «транзистор», верно? Но я понял. Это кажется немного грубым, но это, вероятно, единственный способ пойти. Благодаря! – johnny

+0

Ох, спасибо за это, теперь я использую свойство перехода: http://jsfiddle.net/coma/psbBg/6/ – coma

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