Порядок выполнения команд
Требуется добиться последовательного (неодновременного) выполнения трех команд: скрытие, изменение атрибутов и последующий показ изображения.
Имеется такой код: $("#Img").animate({opacity: "0"}, "slow"); $("#Img").attr({ src: "new_img.jpg", alt: "New alt" }); $("#Img").animate({opacity: "1"}, "slow"); Этот код исполненяется в другом порядке: сначала происходит смена изображения, затем его скрытие и показ. Почему это происходит и как добиться нужного эффекта? |
Потому что анимация — это асинхронная операция. Если вы хотите что-то сделать строго по окончанию, то нужно пользоваться 4-ым параметром метода animate — callback.
Это функция, которая будет вызвана после того, как анимация завершится. |
$("#Img").animate({opacity: "0"}, "slow", function(){ $(this).attr({ src: "new_img.jpg", alt: "New alt" }).animate({opacity: "1"}, "slow"); }); |
Часовой пояс GMT +3, время: 03:41. |