Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как выполнить функцию с задержкой? (https://javascript.ru/forum/events/2346-kak-vypolnit-funkciyu-s-zaderzhkojj.html)

AlexMak 11.12.2008 10:44

Как выполнить функцию с задержкой?
 
У меня есть два слоя наложены друг на друга, при нажатии на кнопку один исчезает и мне нужно, чтобы второй слой стал активным .display='block', но не сразу, а после того, как первый полностью исчезнет, то есть через некоторое время. setTimeout почему-то не срабатывает. Повторение мне не нужно, просто выполнить один раз через некоторое время. Может есть еще какая функция?

AlexMak 11.12.2008 10:59

бразуер Mozilla Firefox
setTimeout почему-то срабатывает сразу же после нажатия.

Kolyaj 11.12.2008 11:15

Код где?

AlexMak 11.12.2008 11:29

Вот код функций.
function sutki(){	
	if (night==false){
	fadeOpacity('fon_day', 'disappear');
	fadeOpacity('tkan_day', 'disappear');
	night=true;
	setTimeout(display(),100);
	} else {
	fadeOpacity('fon_day', 'appear');
	fadeOpacity('tkan_day', 'appear');
        night=false;
	setTimeout(display(),100);
	}
}

function display(){
	if (night) {
	document.getElementById('tkan_day').style.display='none';
	document.getElementById('tkan_night').style.display='block';
	} else {
        document.getElementById('tkan_day').style.display='block';
	document.getElementById('tkan_night').style.display='none';
        }
}

fadeOpacity - функция изменения прозрачности.

ZoNT 11.12.2008 11:34

setTimeout(display,100);

Kolyaj 11.12.2008 11:40

Во-первых,
function sutki(){    
    var mode = night ? 'appear' : 'disappear';
    fadeOpacity('fon_day', mode);
    fadeOpacity('tkan_day', mode);
    night = !night;
    setTimeout(display, 100);
}


Во-вторых, лучше в fadeOpacity третьим параметром передавать функцию, которая будет вызываться по окончании анимации.

AlexMak 11.12.2008 11:53

Благодарю, все заработало, не знал такой фишки о_0


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