Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.12.2008, 10:44
Аспирант
Отправить личное сообщение для AlexMak Посмотреть профиль Найти все сообщения от AlexMak
 
Регистрация: 13.10.2008
Сообщений: 67

Как выполнить функцию с задержкой?
У меня есть два слоя наложены друг на друга, при нажатии на кнопку один исчезает и мне нужно, чтобы второй слой стал активным .display='block', но не сразу, а после того, как первый полностью исчезнет, то есть через некоторое время. setTimeout почему-то не срабатывает. Повторение мне не нужно, просто выполнить один раз через некоторое время. Может есть еще какая функция?
Ответить с цитированием
  #2 (permalink)  
Старый 11.12.2008, 10:59
Аспирант
Отправить личное сообщение для AlexMak Посмотреть профиль Найти все сообщения от AlexMak
 
Регистрация: 13.10.2008
Сообщений: 67

бразуер Mozilla Firefox
setTimeout почему-то срабатывает сразу же после нажатия.
Ответить с цитированием
  #3 (permalink)  
Старый 11.12.2008, 11:15
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Код где?
Ответить с цитированием
  #4 (permalink)  
Старый 11.12.2008, 11:29
Аспирант
Отправить личное сообщение для AlexMak Посмотреть профиль Найти все сообщения от AlexMak
 
Регистрация: 13.10.2008
Сообщений: 67

Вот код функций.
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 - функция изменения прозрачности.
Ответить с цитированием
  #5 (permalink)  
Старый 11.12.2008, 11:34
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

setTimeout(display,100);
Ответить с цитированием
  #6 (permalink)  
Старый 11.12.2008, 11:40
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

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


Во-вторых, лучше в fadeOpacity третьим параметром передавать функцию, которая будет вызываться по окончании анимации.
Ответить с цитированием
  #7 (permalink)  
Старый 11.12.2008, 11:53
Аспирант
Отправить личное сообщение для AlexMak Посмотреть профиль Найти все сообщения от AlexMak
 
Регистрация: 13.10.2008
Сообщений: 67

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать о том, что флэш уже загрузился. Snipe Общие вопросы Javascript 4 29.01.2009 11:21
Как сделать функцию типа toDataUrl для рисунка в ie6 ? Олег Общие вопросы Javascript 2 14.09.2008 00:06
форма как в ExtJS 2 magistr_bender Общие вопросы Javascript 0 11.09.2008 16:01
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 02:11
как выполнить движение объекта scuter Элементы интерфейса 5 08.06.2008 23:57