#jquery #jquery-ui #jquery-selectors #jquery-callback
#jquery #jquery-пользовательский интерфейс #jquery-селекторы #jquery-обратный вызов
Вопрос:
Я использовал функции slideUp / Down в Jquery для анимации div на моей странице, но она плохо работает на iPhone, поэтому я решил написать эквивалент Webkit для решения проблемы производительности, но вы не можете применить обратный вызов к jQuery .css или .addclass .
У меня есть эта функция:
$('#collapse').css('height','0');
Но мне нужно подделать обратный вызов, чтобы это работало:
$('#collapse').css('height','0', function() {
//do something after
});
Кто-нибудь знает, как это сделать?
Анимация Webkit установлена на 1 секунду.
Комментарии:
1. Почему вы не используете функцию .animate()? api.jquery.com/animate вы можете использовать его обработчик обратного вызова, чтобы делать что угодно после завершения анимации
2. @VAShhh
slideUp
иslideDown
использоватьanimate
внутренне, поэтому я не вижу причин думать, что у них не будет таких же проблем с производительностью.
Ответ №1:
Просто используйте setTimeout
; У jQuery нет способа определить, завершена ли встроенная анимация браузера:
$('#collapse').css('height', 0);
setTimeout(function() {
// code will happen after the timeout has completed
}, 1000); // 1 second
Недостатком этого является то, что вам приходится устанавливать время для анимации в двух местах.
Комментарии:
1. Другая возможность: syropia.net/journal/css3-transition-callbacks-in-jquery
2. @RenanFranca Какая разница за четыре года! Добавьте это в качестве ответа, и я поддержу его…
Ответ №2:
Другой возможностью является syropia.net/journal/css3-transition-callbacks-in-jquery
=D