Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   setInterval как автоматически увеличивать время повтора? (https://javascript.ru/forum/dom-window/63464-setinterval-kak-avtomaticheski-uvelichivat-vremya-povtora.html)

Анатолий2015 09.06.2016 07:49

setInterval как автоматически увеличивать время повтора?
 
function  newgame_scroll ()
	{
		 var  scroll  = new Audio();
		 scroll.src = '/assets/sounds/scroll.mp3';
		 scroll.volume = 0.4;
		 scroll.play();
	}

var stopscroll = setInterval(newgame_scroll, 1000);


Сейчас стоит одна сек, как ее увеличивать например на 100, каждую секунду?

Botik21 09.06.2016 13:05

Использовать setTimeout и на каждой итерации задавать время больше.

pureJS 13.06.2016 22:35

Анатолий2015, используй setTimeout вместо setInterval вот так:
var timer = 1000;
var timeControl = Number(new Date()); //для проверки времени задержки
function newgame_scroll()
{
	var scroll  = new Audio();
	scroll.src = '/assets/sounds/scroll.mp3';
	scroll.volume = 0.4;
	scroll.play();

	//проверяем время задержки
	console.log(Number(new Date()) - timeControl);
	timeControl = Number(new Date());

	setTimeout(newgame_scroll, timer += 100)
}
//Запускаем:
newgame_scroll();

Только здесь она не каждую секунду увеличивается, а в зависимости от времени задержки - возможно, именно так ты и хотел. Но суть, надеюсь, понятна.


Часовой пояс GMT +3, время: 13:24.