17.04.2010, 16:44
|
Интересующийся
|
|
Регистрация: 17.04.2010
Сообщений: 17
|
|
бесконечный цикл вызова
Здравствуйте, дорогие друзья.
Есть на html-странице функция, вызываемая по (window).load. Представляет собой по задумке последовательную анимацию 4-х div-ов - бесконечно, пока пользователь на странице. Смотрел Фленагана, заколебал гугл, ничего найти не могу.
Саму ерунду я написал, все отлично работает, скажем, если вызывать ее по hover. Если вызывать по load, она, естественно, крутится один раз, а надо постоянно.
Вопрос 1: как закольцевать или бесконечный цикл повторов поставить?
Вопрос 2: как реализовать альтернативный вариант с вызовом анимации этой по, скажем, (window).mousemove (в принципе, мне без разницы) - но только чтобы четыре дива анимировались последовательно?
Не знаю, надеюсь, то, что я написал можно понять.
Ответьте, плиз, на один из вопросов (для функционала это одно и тоже). Спасибо.
|
|
17.04.2010, 16:55
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,586
|
|
Если вы делали анимацию, вам должны быть знакомы setTimeout и setInterval.
Тогда в чём проблема?
|
|
17.04.2010, 16:59
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,577
|
|
У функции animate есть один параметр - функция, которая вызовется при окончании анимации. Вот и настрой.
|
|
17.04.2010, 17:04
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,586
|
|
Аааа, jquery...
|
|
17.04.2010, 17:11
|
Интересующийся
|
|
Регистрация: 17.04.2010
Сообщений: 17
|
|
Спасибо. Плохо понял, правда. setinterval почему то работает как settimeout (просто происходит задержка, повторения нет).
miscr, а где посмотреть как это выглядит? И функцию эту присваивать надо последней по счету анимации?
|
|
17.04.2010, 17:24
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,577
|
|
Что-то типа этого:
function start(){
$('.div1').animate({'left':'+=100px'},
'slow',
function() {
$('.div2').animate({'left':'+=100px'},
'slow',
function(){
start(); //зацикливаем
});
});
}
|
|
17.04.2010, 17:38
|
Интересующийся
|
|
Регистрация: 17.04.2010
Сообщений: 17
|
|
<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>
Чтой-то я не то делаю, верно?
|
|
17.04.2010, 17:44
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,577
|
|
Сообщение от torquemada
|
Чтой-то я не то делаю, верно?
|
Да, что-то не то. Внимательно изучите предоставленный вам пример. И желательно функции анимации в джи.
Самое кидающееся в глаза:
не надо
$(window).load
т.к.
$(document).ready
выполняет эту функцию
|
|
17.04.2010, 17:50
|
Интересующийся
|
|
Регистрация: 17.04.2010
Сообщений: 17
|
|
miscr, спасибо еще раз. Но без window load не работает вообще (
|
|
17.04.2010, 17:51
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,577
|
|
т.е. достаточно:
$(document).ready(function() {
start(); // Вызовем первоначально анимацию
});
а как писать функцию start смотри выше.
|
|
|
|