Задержка цикла (и гинеколог тут непричём)
Здравствуйте!
Надо чтобы цикл выполнял действие с интервалом в N секунд, на каждый проход по циклу. Подскажите, пож., как сделать задержку в цикле? Моя реализация не работает:
for(var i=0; i<(all-1); i++) {
/* какое-то действие */
setTimeout('alert("прошла секунда")', 1000);
}
Сначала проходит весь цикл, потом начинает мне alert выводить. Ну и сразу задам второй вопрос: как реализовать простое плавное !Равномерное! движение? |
var i = 0;
var timer = setInterval(function() {
if(i < (all - 1)) {
/* какое-то действие */
i++;
} else {
clearInterval(timer);
}
}, 1000);
Хотя, если действие "длинное" - для точности срабатывания временных задержек рекомендуется использовать вложенные setTimeout Равномерное движение есть движение с постоянной скорость пикс/сек. Т.е. задача в том, чтобы перемещать объект на одинаковое число пикселей за одинаковое время. |
Спасибо, работает великолепно!
И еще немного про равномерное движение. Я понимаю, что это такое, я не совсем понимаю, как двигать что-то(пусть это будет блок div), и связать это со временем. Если можно, покажите, пож., небольшой пример. И если не затруднит, то с использованием jQuery. Для решения, я использовала вышеизложенный подход, однако, мне кажется он совсем не верен. Задача в том, чтобы воссоздать движением с равномерным ускорением. К сожалению, jQuery animate двигает нужный объект, но не с равноускоренно. |
animate
Про равномерное (не равноускоренное!) смотрите на параметр easing |
| Часовой пояс GMT +3, время: 04:29. |