Можно ли получить уведомление (например, обратный вызов), когда переход CSS завершен?
javascript
css
css-transitions
Помпа
источник
источник
Ответы:
Я знаю, что Safari реализует webkitTransitionEnd вызов который вы можете прикрепить непосредственно к элементу с переходом.
Их пример (переформатированный на несколько строк):
источник
this
элементом внутри обратного вызова. Но это обязательный параметр, поэтому в данном случае он просто выполняет требование.useCaptureMode
. Когда происходит событие, есть две фазы: первая фаза - режим захвата, вторая - пузырьковый режим. В режиме захвата событие спускается от основного элемента к указанному элементу. Затем он переходит в режим пузырьков, где происходит обратное. Этот последний параметр false указывает, что вы хотите, чтобы прослушиватель событий работал в пузырьковом режиме. Одно из применений этого - присоединение обработчиков событий непосредственно перед тем, как они понадобятся в пузырьковом режиме. =) 37signals.com/svn/posts/…Да, если такие вещи поддерживаются браузером, то по завершении перехода срабатывает событие. Однако фактическое событие в разных браузерах различается:
webkitTransitionEnd
transitionend
msTransitionEnd
oTransitionEnd
Однако вы должны знать, что
webkitTransitionEnd
это не всегда срабатывает! Это улавливало меня несколько раз, и, кажется, происходит, если анимация не влияет на элемент. Чтобы обойти это, имеет смысл использовать тайм-аут для запуска обработчика событий в случае, если он не сработал должным образом. Сообщение в блоге об этой проблеме доступно здесь: http://www.cuppadev.co.uk/the-trouble-with-css-transitions/ <- 500 Internal Server ErrorИмея это в виду, я обычно использую это событие в фрагменте кода, который выглядит примерно так:
Примечание: чтобы получить имя конца события перехода, вы можете использовать метод, опубликованный в качестве ответа в: Как нормализовать функции перехода CSS3 в браузерах? .
Примечание: этот вопрос также относится к: - Событиям перехода CSS3
источник
transitionEndedHandler
вtransitionEnded
(или измененияtransitionEnded
наtransitionEndedHandler
вaddEventListener
иremoveEventListener
и вызовtransitionEnded
вtransitionEndedHandler
)transitionEnded
когда имел в видуtransitionEndedHandler
.Я использую следующий код, это намного проще, чем пытаться определить, какое конкретное конечное событие использует браузер.
В качестве альтернативы, если вы используете бутстрап, вы можете просто сделать
Это потому, что они включают в bootstrap.js следующее:
источник
Плагин jQuery.transit , плагин для CSS3 преобразований и переходов, можно назвать ваши CSS - анимацию из сценария и дать вам обратный вызов.
источник
Этого легко добиться с помощью
transitionend
события, см. Документацию здесь . Простой пример:источник