бесконечный цикл вызова
Здравствуйте, дорогие друзья.
Есть на html-странице функция, вызываемая по (window).load. Представляет собой по задумке последовательную анимацию 4-х div-ов - бесконечно, пока пользователь на странице. Смотрел Фленагана, заколебал гугл, ничего найти не могу. Саму ерунду я написал, все отлично работает, скажем, если вызывать ее по hover. Если вызывать по load, она, естественно, крутится один раз, а надо постоянно. Вопрос 1: как закольцевать или бесконечный цикл повторов поставить? Вопрос 2: как реализовать альтернативный вариант с вызовом анимации этой по, скажем, (window).mousemove (в принципе, мне без разницы) - но только чтобы четыре дива анимировались последовательно? Не знаю, надеюсь, то, что я написал можно понять. Ответьте, плиз, на один из вопросов (для функционала это одно и тоже). Спасибо. |
|
У функции animate есть один параметр - функция, которая вызовется при окончании анимации. Вот и настрой.
|
Аааа, jquery...
|
Спасибо. Плохо понял, правда. setinterval почему то работает как settimeout (просто происходит задержка, повторения нет).
miscr, а где посмотреть как это выглядит? И функцию эту присваивать надо последней по счету анимации? |
Что-то типа этого:
function start(){
$('.div1').animate({'left':'+=100px'},
'slow',
function() {
$('.div2').animate({'left':'+=100px'},
'slow',
function(){
start(); //зацикливаем
});
});
}
|
<script type="text/javascript">
$(document).ready(function() { $(window).load(function start() { $("#letter_x").animate({opacity:"0.01", marginTop:"120"}, 1).animate({opacity:"1", marginTop:"190"}, 950); $("#press").animate({opacity:"0.01"}, 950).animate({opacity:"1"}, 950).animate({opacity:"1"}, 2800); $("#cite").animate({opacity:"1"}, 950).animate({opacity:"0.01"}, 950).animate({opacity:"1"}, 950); $("#ploit").animate({opacity:"1"}, 1850).animate({opacity:"0.01"}, 950).animate({opacity:"1"}, 950); }, function() { start(); }); }); </script> Чтой-то я не то делаю, верно? |
Цитата:
Самое кидающееся в глаза: не надо $(window).load т.к. $(document).ready выполняет эту функцию |
miscr, спасибо еще раз. Но без window load не работает вообще (
|
т.е. достаточно:
$(document).ready(function() {
start(); // Вызовем первоначально анимацию
});
а как писать функцию start смотри выше. |
Спасибо еще раз. Каждый див анимируется в несколько этапов, пропускать ")" после последней .animate дива и перед следующей function() { ? Или как?
|
miscr, если не замучал еще, то пишу я вот так:
<script type="text/javascript">
function start() {
$("#letter_x").animate({opacity:"0.01", marginTop:"120"}, 1).animate({opacity:"1", marginTop:"190"}, 950,
function() {
$("#press").animate({opacity:"0.01"}, 950).animate({opacity:"1"}, 950).animate({opacity:"1"}, 2800,
function() {
$("#cite").animate({opacity:"1"}, 950).animate({opacity:"0.01"}, 950).animate({opacity:"1"}, 950,
function() {
$("#ploit").animate({opacity:"1"}, 1850).animate({opacity:"0.01"}, 950).animate({opacity:"1"}, 950,
function() {
start();
});
});
}
</script>
<script type="text/javascript">
$(document).ready(function() {
start();
});
</script>
|
Спасибо, дорогие друзья! Мы всех забороли!
Ув. модераторы, закройте, пожалуйста тему. |
| Часовой пояс GMT +3, время: 21:59. |