Я обманывал stop()
jQuery и заканчивал бесконечным циклом. Идея была (просто экспериментирована), чтобы создать анимацию с условием «шаг», которая проверит, достигло ли свойство css элемента определенное значение и в этом случае остановит анимацию прямо на своих дорожках, очистив очередь AND завершая анимацию сразу.бесконечный цикл с jQuery .stop()
Я знаю, это может показаться глупым, поскольку, вероятно, это не так, как должно использоваться .stop()
, но я думал, что вы можете дать мне ответ на это неожиданное поведение.
Вот код:
$("#element").animate({
"width": "500px",
"height": "130px"
}, {
"duration": 850,
"step": function() {
var currentWidth = $(this).width();
if(currentWidth >= 295) $(this).stop(true, true);
}
}).slideUp(700);
Я узнал, что бесконечный цикл вызывается второй true
передается stop()
- то есть параметр, который указывает анимацию немедленно завершена.
Возможно, что-то связано с функцией «шаг», но может ли кто-нибудь объяснить мне такое поведение?
Спасибо, я не совсем понимаю ваш ответ, но давайте посмотрим, получил ли я главный момент: когда я вызываю .stop (true, true), анимация запускается еще раз в последний раз и выполняет " шаг «... в« шаге ».stop вызывается снова и заставляет анимацию запускаться снова в последний раз ... и так далее, и создается бесконечный цикл ... это правильно? Кроме того, вы могли бы предоставить некоторый код, который показывает, как правильно достичь того, что я пытаюсь сделать? Большое спасибо. – user1236489