Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2018, 10:16
Новичок на форуме
Отправить личное сообщение для .PropLog Посмотреть профиль Найти все сообщения от .PropLog
 
Регистрация: 01.04.2018
Сообщений: 2

Цикл + таймер
Подскажите как подружить таймер с циклом?
while (z < step) {
                c += z;
            console.log(z, c);
                    while (i < idNumberBack) {
                        var TopLeft = arrayTopLeft[c];
                        var returnId = ("object" + i);
                        document.getElementById(returnId).style.cssText = TopLeft;
                        c += step;
                        i++;
                       
                    }
                c = 1;
                i = 1;
                z++;
            }

внутренний цикл должен исполняться n-раз в секунду
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2018, 10:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от .PropLog
Подскажите как подружить таймер с циклом?
никак!!!
медитировать тут
JS-Анимация
Ответить с цитированием
  #3 (permalink)  
Старый 02.04.2018, 18:05
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

рони,

<div id="test"></div>
<script>
function delay(duration) {
	return new Promise(resolve => {
		setTimeout(resolve, duration);
	});
}

(async () => {
	let counter = 0;

	while(true) {
		await delay(500);
		test.textContent = counter++;
	}
})();
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 02.04.2018, 18:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Malleys,
ок, спасибо за науку, но проще один setTimeout, без while, await, Promise ...
<div id="test"></div>
<script>
var counter = 0;
(function delay(duration) {
  test.textContent = counter;
  if(++counter <= 100)  setTimeout(delay, duration, duration);
})(500)

</script>
Ответить с цитированием
  #5 (permalink)  
Старый 02.04.2018, 20:35
Новичок на форуме
Отправить личное сообщение для .PropLog Посмотреть профиль Найти все сообщения от .PropLog
 
Регистрация: 01.04.2018
Сообщений: 2

"сваял" что-то страшное, но почему-то работает...
var animation =  setInterval(function() {
         c+=z;
         while (y < idNumber) {
            var TopLeft = arrayTopLeft[c];
            var returnId = ("object" + i);
            document.getElementById(returnId).style.cssText = TopLeft;
            if (i == (idNumber-1)){
               i=1;
            }
               c += step;
               i++;
               y++;
            }
               i = 1;
               c=1;
               y = 1;
               z++;
            if (z == step){
               z = 0;
             }
    },1000/step);
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Индивидуальный таймер обратного отсчета времени с редиректом pozitiv4ek Работа 2 11.12.2016 13:42
Таймер на вкладках в Хроме. YNA Opera, Safari и др. 1 28.01.2016 02:43
помогите чтобы таймер тикал Руслан904322 Общие вопросы Javascript 1 22.02.2015 12:43
Обновляемый таймер на javascript smillyhamster Общие вопросы Javascript 1 31.12.2013 10:30
Цикл завешивает страницу, помогите Romingood jQuery 5 19.10.2013 14:30