Есть ли способ реализовать функцию обратного вызова в случае анимации css3? В случае анимации Javascript это возможно, но не найти способа сделать это в css3.
Один из способов, который я мог увидеть, - это выполнить обратный вызов после продолжительности анимации, но это не гарантирует, что он всегда будет вызываться сразу после завершения анимации. Это будет зависеть от очереди пользовательского интерфейса браузера. Мне нужен более надежный метод. Есть подсказка?
javascript
css
frontend
изменить
источник
источник
Ответы:
Да, есть. Обратный вызов - это событие, поэтому вы должны добавить прослушиватель событий, чтобы его поймать. Это пример с jQuery:
$("#sun").bind('oanimationend animationend webkitAnimationEnd', function() { alert("fin") });
Или чистый js:
element.addEventListener("webkitAnimationEnd", callfunction,false); element.addEventListener("animationend", callfunction,false); element.addEventListener("oanimationend", callfunction,false);
Живая демонстрация: http://jsfiddle.net/W3y7h/
источник
transitionend
не такanimationend
.animationend
msdn.microsoft.com/en-us/library/ie/… . @Husky, код действительно работает в Chrome и FF 14, см. Обновленную скрипку jsfiddle.net/W3y7hПростой способ выполнить обратный вызов, который также обрабатывает ваши переходы CSS3 / совместимость с браузером, - это плагин jQuery Transit . Пример:
//Pulsing, moving element $("#element").click( function () { $('#element').transition({ opacity: 0, x: '75%' }, function () { $(this).transition({ opacity: 1, x: '0%' }).trigger("click"); }); });
Демонстрация JS Fiddle
источник