Задержка таймера
Всем здравсвуйте.
Нашел на форуме данный код
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сек, как подоьное реализовать, подскажите ? И еще один вопрос: идеальный ли этот код, для подобной анимации или можно сделать еще лучше? |
window.setTimeout(arguments.callee, 10); аргумент передается в милисекундах - 10000 |
Isaac,
Зачем вы его так отформатировали, что он потерял рабочий вид? ;) Код, плохой, так писать не нужно, потому что он не имеет модульной формы и не является переносимым. Однако он имеет довольно простую структуру, чтобы понять что в нем происходит. К прочтению |
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Анимация стала медленней, но ведь я не это просил. Я спрашивал, как мне сделать, чтоб после того, как див опустился вниз, была пауза, а потом он поднимается вверх. Как сделать паузу в таймере? В jQuery, если не ошибаюсь, есть delay, а подобное в js реализовать, как можно? |
ты спросил о задержке в таймере. твой код для паузы не пригоден абсолюно.
у тебя должно быть 2 таймера-один для функции движения(таймер сбрасывается при достижении низа.второй в это время устанавливается и через промежуток времени запускает функцию движения) |
Цитата:
А это наверное не очень хорошо? В jQuery так же реализовано? Стоит ли писать на чистом js? Как подобное отобразится на браузере, "тормозов" и "заиканий" анимации не будет? Или лучше написать на jQuery, чтоб все "гладко" было реализовано? |
Цитата:
нарисуй сам для себя алгоритм-смысл писать код если не представляешь как он будет работать? а вообще на форуме есть такой пример-смотри |
| Часовой пояс GMT +3, время: 02:53. |