Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.04.2013, 01:57
Аватар для Barsam
Новичок на форуме
Отправить личное сообщение для Barsam Посмотреть профиль Найти все сообщения от Barsam
 
Регистрация: 23.04.2013
Сообщений: 2

Задержка цикла (и гинеколог тут непричём)
Здравствуйте!
Надо чтобы цикл выполнял действие с интервалом в N секунд, на каждый проход по циклу.
Подскажите, пож., как сделать задержку в цикле?
Моя реализация не работает:
for(var i=0; i<(all-1); i++) {
    /* какое-то действие */
    setTimeout('alert("прошла секунда")', 1000);
}

Сначала проходит весь цикл, потом начинает мне alert выводить.

Ну и сразу задам второй вопрос: как реализовать простое плавное !Равномерное! движение?

Последний раз редактировалось Barsam, 23.04.2013 в 02:02. Причина: уточнение
Ответить с цитированием
  #2 (permalink)  
Старый 23.04.2013, 02:17
Аватар для bret
Кандидат Javascript-наук
Отправить личное сообщение для bret Посмотреть профиль Найти все сообщения от bret
 
Регистрация: 04.10.2008
Сообщений: 128

var i = 0;
    var timer = setInterval(function() {
        if(i < (all - 1)) {
            /* какое-то действие */
            i++;
        } else {
            clearInterval(timer);
        }
    }, 1000);

Хотя, если действие "длинное" - для точности срабатывания временных задержек рекомендуется использовать вложенные setTimeout

Равномерное движение есть движение с постоянной скорость пикс/сек. Т.е. задача в том, чтобы перемещать объект на одинаковое число пикселей за одинаковое время.
__________________
я подыскиваю мозг... твой подойдёт
Ответить с цитированием
  #3 (permalink)  
Старый 23.04.2013, 04:04
Аватар для Barsam
Новичок на форуме
Отправить личное сообщение для Barsam Посмотреть профиль Найти все сообщения от Barsam
 
Регистрация: 23.04.2013
Сообщений: 2

Спасибо, работает великолепно!

И еще немного про равномерное движение. Я понимаю, что это такое, я не совсем понимаю, как двигать что-то(пусть это будет блок div), и связать это со временем.
Если можно, покажите, пож., небольшой пример. И если не затруднит, то с использованием jQuery.

Для решения, я использовала вышеизложенный подход, однако, мне кажется он совсем не верен.
Задача в том, чтобы воссоздать движением с равномерным ускорением.
К сожалению, jQuery animate двигает нужный объект, но не с равноускоренно.

Последний раз редактировалось Barsam, 23.04.2013 в 04:14.
Ответить с цитированием
  #4 (permalink)  
Старый 23.04.2013, 11:17
Аватар для bret
Кандидат Javascript-наук
Отправить личное сообщение для bret Посмотреть профиль Найти все сообщения от bret
 
Регистрация: 04.10.2008
Сообщений: 128

animate
Про равномерное (не равноускоренное!) смотрите на параметр easing
__________________
я подыскиваю мозг... твой подойдёт
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск