Как выполнить функцию с задержкой?
У меня есть два слоя наложены друг на друга, при нажатии на кнопку один исчезает и мне нужно, чтобы второй слой стал активным .display='block', но не сразу, а после того, как первый полностью исчезнет, то есть через некоторое время. setTimeout почему-то не срабатывает. Повторение мне не нужно, просто выполнить один раз через некоторое время. Может есть еще какая функция?
|
бразуер Mozilla Firefox
setTimeout почему-то срабатывает сразу же после нажатия. |
Код где?
|
Вот код функций.
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 - функция изменения прозрачности. |
setTimeout(display,100);
|
Во-первых,
function sutki(){
var mode = night ? 'appear' : 'disappear';
fadeOpacity('fon_day', mode);
fadeOpacity('tkan_day', mode);
night = !night;
setTimeout(display, 100);
}
Во-вторых, лучше в fadeOpacity третьим параметром передавать функцию, которая будет вызываться по окончании анимации. |
Благодарю, все заработало, не знал такой фишки о_0
|
| Часовой пояс GMT +3, время: 08:23. |