Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Задержка перед показом анимации (https://javascript.ru/forum/dom-window/21290-zaderzhka-pered-pokazom-animacii.html)

Gorini4 04.09.2011 00:30

Задержка перед показом анимации
 
Всем привет! Буду благодарен за помощь в решении проблемы.
Использую в шапке сайта код, который поочередно показывает то блок с текстом, то gif-анимацию с интервалом в 6 секунд. Но почему-то перед первым показом происходит очень долгая задержка - ~18-20 секунд. В чем может быть проблема?
setInterval(function(){
	$('headAnimation').style.display = "none"; \\ Скрываем анимацию
	$('headText').style.display = "inline"; \\ Показываем текст
	setTimeout(function(){
		$('headAnimation').style.display = "inline"; \\ Ждем 6 сек. и меняем
		$('headText').style.display = "none";
	}, 6000);
}, 12000);

devote 04.09.2011 00:45

function anim( nowait ){ 
    $('headAnimation').style.display = "none"; \\ Скрываем анимацию 
    $('headText').style.display = "inline"; \\ Показываем текст 
    setTimeout(function(){ 
        $('headAnimation').style.display = "inline"; \\ Ждем 6 сек. и меняем 
        $('headText').style.display = "none"; 
    }, nowait ? 1 : 6000); 
}
setInterval(anim, 12000);
anim( true );

Андрей Параничев 04.09.2011 14:22

Если словами, то setInterval делает первый вызов обработчика после числа миллисекунд, переданного вторым параметром, а не вызывает код в момент вызова и через заданные интервалы.

Получается, что у вас первое выполнение интервала идет через 12 секунд, потом объявляется таймер, который вызывает свой код еще через 6 секунд.

Gorini4 05.09.2011 02:37

да, я тоже так подумал. продублировал исполняющийся код перед setInterval и задержки не стало. всем спасибо!)


Часовой пояс GMT +3, время: 03:39.