Задержка цикла (и гинеколог тут непричём)
Здравствуйте!
Надо чтобы цикл выполнял действие с интервалом в 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, время: 14:08. |