Поочередное применение эффектов
Всем здравствуйте!
Имеется три блока, как осуществить поочередную анимацию, т.е. сначала появляется первый блок, как только его анимация закончилась, второй, третий и т.д. ? Предполагаю, что должен быть какой-то цикл, но он работает не так, как мне бы хотелось, т.е. выводит все три блока одновременно. Буду благодарна любому совету, может подскажите где и что почитать :thanks:
<script>
$(document).ready(function(){
$("div").each(function(){
$(this).effect("slide",{
mode: "show",
direction: "right"
}, 500)
})
})
</script>
<div id="div1">Текст 1</div> <div id="div2">Текст 2</div> <div id="div3">Текст 3</div> |
Используете jQueryUI?
jQueryUI Effect Обратите внимание на четвёртый параметр (complete) - это функция, которая выполняется после завершения анимации. |
Да.
Да, я пыталась колдовать с вызовом обратной функции, но что-то должного результата опять же, не принесло. Целый день сижу с этой проблемой, много чего было перепробовано и setTimeOut(), .queue() и пр., но что-то мозг подводит, сообразить не могу. :-? |
Не тестировал, поэтому может не работать, но что-то типа такого:
function sequentialEffects(elems, index) {
index = index || 0;
if (!elems[index]) return;
elems.eq(index).effect(
'slide'
, {
mode: 'show'
, direction: 'right'
}
, 500
, function () {
sequentialEffects(elems, index + 1);
}
);
}
sequentialEffects($('div'));
|
Цитата:
$("p").animate({
height:200, width:400, opacity: .5
}, 1000, "linear",
*!*
function(){alert("Вместо alert, вызов следующего эффекта");
*/!*
} );
|
Sanda,
Спасибо большое, работает все прекрасно. :thanks: Deff, Вам также спасибо, что ответили :thanks: |
|
| Часовой пояс GMT +3, время: 10:03. |