Задержка таймера
Всем здравсвуйте.
Нашел на форуме данный код 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, время: 08:47. |