Как выполнить функцию с задержкой?
У меня есть два слоя наложены друг на друга, при нажатии на кнопку один исчезает и мне нужно, чтобы второй слой стал активным .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, время: 18:24. |