Я дурачился с stop()
в jQuery и получил бесконечный цикл.
Идея состояла в том, чтобы (только из экспериментов) создать анимацию с условием «шага», которая проверила бы, достигло ли свойство css элемента определенного значения, и, в этом случае, остановила анимацию прямо в ее дорожках, очистив очередь И завершив анимация сразу.
Я знаю, что это может звучать глупо, поскольку, вероятно, это не тот способ, которым .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()
- то есть параметром, который сообщает о немедленном завершении анимации.
Возможно, это как-то связано с функцией 'step', но кто-нибудь может объяснить мне такое поведение?