Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.08.2011, 18:06
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Задержка таймера
Всем здравсвуйте.
Нашел на форуме данный код
var elem = document.getElementsByTagName('div')[0],
			i = 30;
			l = 30,
			j = 0,
			k = 0,
			s = 100;
			
		if(k != 0)
			return;
				
			(function()
			{
				if(i <= s)
				{
					elem.style.top = ++ i + 'px';
					j = i;
					k = 1;
				}else
				 {					
					 elem.style.top = -- j +'px';
					 if(j <= l)
					 	i = l;
				 }
				
				window.setTimeout(arguments.callee, 10);
				
				return false;
			})();
			
			return false;

<div id="foo" style="background: #0095FF; position: absolute; width: 50px; height: 50px"></div>

Вопрос в следующем: если я хочу сделать задержку в таймере , то есть, чтоб див поднимался допустим через 10сек, как подоьное реализовать, подскажите ?
И еще один вопрос: идеальный ли этот код, для подобной анимации или можно сделать еще лучше?
Ответить с цитированием
  #2 (permalink)  
Старый 03.08.2011, 18:53
Ламер
Отправить личное сообщение для DooMer Посмотреть профиль Найти все сообщения от DooMer
 
Регистрация: 19.02.2010
Сообщений: 295

window.setTimeout(arguments.callee, 10);

аргумент передается в милисекундах - 10000
Ответить с цитированием
  #3 (permalink)  
Старый 03.08.2011, 19:08
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Isaac,
Зачем вы его так отформатировали, что он потерял рабочий вид?

Код, плохой, так писать не нужно, потому что он не имеет модульной формы и не является переносимым. Однако он имеет довольно простую структуру, чтобы понять что в нем происходит.

К прочтению
Ответить с цитированием
  #4 (permalink)  
Старый 03.08.2011, 20:52
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Сообщение от DooMer Посмотреть сообщение
window.setTimeout(arguments.callee, 10);

аргумент передается в милисекундах - 10000
Так у меня и так стоит window.setTimeout(arguments.callee, 10) или еще раз нужно добавить эту строку ?
Ответить с цитированием
  #5 (permalink)  
Старый 03.08.2011, 20:54
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Сообщение от monolithed Посмотреть сообщение
Isaac,
Зачем вы его так отформатировали, что он потерял рабочий вид?

Код, плохой, так писать не нужно, потому что он не имеет модульной формы и не является переносимым. Однако он имеет довольно простую структуру, чтобы понять что в нем происходит.

К прочтению
Я его позже приведу в старыйвид,пока, как тестовый вариант отформатировал код.
Ответить с цитированием
  #6 (permalink)  
Старый 03.08.2011, 21:32
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Isaac
Так у меня и так стоит window.setTimeout(arguments.callee, 10) или еще раз нужно добавить эту строку ?
у тебя стоит 10 милисекунд ,а тебе нужно 10 секунд.это 10 000 милисекунд
Ответить с цитированием
  #7 (permalink)  
Старый 03.08.2011, 21:52
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Сообщение от dmitriymar Посмотреть сообщение
у тебя стоит 10 милисекунд ,а тебе нужно 10 секунд.это 10 000 милисекунд
Хорошо, добавил я 10000 и что с того?
Анимация стала медленней, но ведь я не это просил.
Я спрашивал, как мне сделать, чтоб после того, как див опустился вниз, была пауза, а потом он поднимается вверх.
Как сделать паузу в таймере?
В jQuery, если не ошибаюсь, есть delay, а подобное в js реализовать, как можно?
Ответить с цитированием
  #8 (permalink)  
Старый 03.08.2011, 22:05
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

ты спросил о задержке в таймере. твой код для паузы не пригоден абсолюно.
у тебя должно быть 2 таймера-один для функции движения(таймер сбрасывается при достижении низа.второй в это время устанавливается и через промежуток времени запускает функцию движения)
Ответить с цитированием
  #9 (permalink)  
Старый 03.08.2011, 22:14
Аватар для Isaac
Кандидат Javascript-наук
Отправить личное сообщение для Isaac Посмотреть профиль Найти все сообщения от Isaac
 
Регистрация: 03.08.2011
Сообщений: 106

Сообщение от dmitriymar Посмотреть сообщение
ты спросил о задержке в таймере. твой код для паузы не пригоден абсолюно.
у тебя должно быть 2 таймера-один для функции движения(таймер сбрасывается при достижении низа.второй в это время устанавливается и через промежуток времени запускает функцию движения)
Таймер в таймере?
А это наверное не очень хорошо?
В jQuery так же реализовано? Стоит ли писать на чистом js? Как подобное отобразится на браузере, "тормозов" и "заиканий" анимации не будет?
Или лучше написать на jQuery, чтоб все "гладко" было реализовано?
Ответить с цитированием
  #10 (permalink)  
Старый 03.08.2011, 22:20
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Isaac
Таймер в таймере?
А это наверное не очень хорошо?
где хоть слово о тайме в таймере? у тебя должно быть 2 таймера один движение.второй задержка(вызывает движение опять через время).
нарисуй сам для себя алгоритм-смысл писать код если не представляешь как он будет работать?
а вообще на форуме есть такой пример-смотри

Последний раз редактировалось dmitriymar, 03.08.2011 в 22:23.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задержка между анимациями jquery alexilin Общие вопросы Javascript 1 10.12.2010 13:39
Задержка скрипта Leopard Общие вопросы Javascript 2 31.10.2010 17:52
задержка в появлении div xsfd Элементы интерфейса 2 27.09.2010 21:44
Установить id на на цикл ссылок с помощью таймера ivanweb jQuery 5 09.06.2010 11:05
запретить повторный запуск таймера setInterval-clearInterval mrWong Общие вопросы Javascript 1 01.02.2010 12:25