Есть ли какие-либо события, запускаемые элементом для проверки начала или окончания перехода css3?
источник
Есть ли какие-либо события, запускаемые элементом для проверки начала или окончания перехода css3?
Завершение перехода CSS генерирует соответствующее событие DOM. Событие запускается для каждого свойства, которое подвергается переходу. Это позволяет разработчику контента выполнять действия, которые синхронизируются с завершением перехода.
Чтобы определить, когда переход завершается, установите функцию прослушивания событий JavaScript для события DOM, которое отправляется в конце перехода. Событие является экземпляром WebKitTransitionEvent, и его тип -
webkitTransitionEnd
.
box.addEventListener( 'webkitTransitionEnd',
function( event ) { alert( "Finished transition!" ); }, false );
Существует одно событие, которое запускается, когда завершаются переходы. В Firefox событие есть
transitionend
, в OperaoTransitionEnd
и в WebKit оно естьwebkitTransitionEnd
.
Существует один тип события перехода.
oTransitionEnd
Событие происходит при завершении перехода.
transitionend
Событие происходит при завершении перехода. Если переход удален до его завершения, событие не сработает.
Переполнение стека: Как нормализовать функции перехода CSS3 в разных браузерах?
Обновить
Все современные браузеры теперь поддерживают событие без префикса:
element.addEventListener('transitionend', callback, false);
https://caniuse.com/#feat=css-transitions
Я использовал подход, данный Питом, однако теперь я начал использовать следующее
В качестве альтернативы, если вы используете загрузчик, то вы можете просто сделать
Это потому, что они включают следующее в bootstrap.js
Обратите внимание, что они также включают функцию emulateTransitionEnd, которая может потребоваться для обеспечения постоянного обратного вызова.
http://blog.alexmaccaw.com/css-transitions
источник
Все современные браузеры теперь поддерживают событие без префикса:
element.addEventListener('transitionend', callback, false);
Работает в последних версиях Chrome, Firefox и Safari. Даже IE10 +.
источник
В Opera 12 при связывании с использованием простого JavaScript «oTransitionEnd» будет работать:
однако, если вы связываетесь через jQuery, вам нужно использовать 'otransitionend'
Если вы используете Modernizr или bootstrap-transition.js, вы можете просто внести изменения:
Вы также можете найти некоторую информацию здесь http://www.ianlunn.co.uk/blog/articles/opera-12-otransitionend-bugs-and-workarounds/
источник
Просто для удовольствия, не делай этого!
источник
Если вы просто хотите обнаружить только один конец перехода, без использования какой-либо инфраструктуры JS, вот небольшая удобная служебная функция:
Использование:
тогда, если вы хотите отменить в какой-то момент, вы все равно можете сделать это с
Это хорошо и для других мероприятий :)
источник