
03.08.2011, 18:06
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 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сек, как подоьное реализовать, подскажите ?
И еще один вопрос: идеальный ли этот код, для подобной анимации или можно сделать еще лучше?
|
|

03.08.2011, 18:53
|
|
Ламер
|
|
Регистрация: 19.02.2010
Сообщений: 295
|
|
window.setTimeout(arguments.callee, 10);
аргумент передается в милисекундах - 10000
|
|

03.08.2011, 19:08
|
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Isaac,
Зачем вы его так отформатировали, что он потерял рабочий вид?
Код, плохой, так писать не нужно, потому что он не имеет модульной формы и не является переносимым. Однако он имеет довольно простую структуру, чтобы понять что в нем происходит.
К прочтению
|
|

03.08.2011, 20:52
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 03.08.2011
Сообщений: 106
|
|
Сообщение от DooMer
|
window.setTimeout(arguments.callee, 10);
аргумент передается в милисекундах - 10000
|
Так у меня и так стоит window.setTimeout(arguments.callee, 10) или еще раз нужно добавить эту строку ?
|
|

03.08.2011, 20:54
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 03.08.2011
Сообщений: 106
|
|
Сообщение от monolithed
|
Isaac,
Зачем вы его так отформатировали, что он потерял рабочий вид? 
Код, плохой, так писать не нужно, потому что он не имеет модульной формы и не является переносимым. Однако он имеет довольно простую структуру, чтобы понять что в нем происходит.
К прочтению
|
Я его позже приведу в старыйвид,пока, как тестовый вариант отформатировал код.
|
|

03.08.2011, 21:32
|
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
|
Сообщение от Isaac
|
|
Так у меня и так стоит window.setTimeout(arguments.callee, 10) или еще раз нужно добавить эту строку ?
|
у тебя стоит 10 милисекунд ,а тебе нужно 10 секунд.это 10 000 милисекунд
|
|

03.08.2011, 21:52
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 03.08.2011
Сообщений: 106
|
|
Сообщение от dmitriymar
|
|
у тебя стоит 10 милисекунд ,а тебе нужно 10 секунд.это 10 000 милисекунд
|
Хорошо, добавил я 10000 и что с того?
Анимация стала медленней, но ведь я не это просил.
Я спрашивал, как мне сделать, чтоб после того, как див опустился вниз, была пауза, а потом он поднимается вверх.
Как сделать паузу в таймере?
В jQuery, если не ошибаюсь, есть delay, а подобное в js реализовать, как можно?
|
|

03.08.2011, 22:05
|
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
|
ты спросил о задержке в таймере. твой код для паузы не пригоден абсолюно.
у тебя должно быть 2 таймера-один для функции движения(таймер сбрасывается при достижении низа.второй в это время устанавливается и через промежуток времени запускает функцию движения)
|
|

03.08.2011, 22:14
|
 |
Кандидат Javascript-наук
|
|
Регистрация: 03.08.2011
Сообщений: 106
|
|
Сообщение от dmitriymar
|
ты спросил о задержке в таймере. твой код для паузы не пригоден абсолюно.
у тебя должно быть 2 таймера-один для функции движения(таймер сбрасывается при достижении низа.второй в это время устанавливается и через промежуток времени запускает функцию движения)
|
Таймер в таймере?
А это наверное не очень хорошо?
В jQuery так же реализовано? Стоит ли писать на чистом js? Как подобное отобразится на браузере, "тормозов" и "заиканий" анимации не будет?
Или лучше написать на jQuery, чтоб все "гладко" было реализовано?
|
|

03.08.2011, 22:20
|
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
|
Сообщение от Isaac
|
Таймер в таймере?
А это наверное не очень хорошо?
|
где хоть слово о тайме в таймере? у тебя должно быть 2 таймера один движение.второй задержка(вызывает движение опять через время).
нарисуй сам для себя алгоритм-смысл писать код если не представляешь как он будет работать?
а вообще на форуме есть такой пример-смотри
Последний раз редактировалось dmitriymar, 03.08.2011 в 22:23.
|
|
|
|