English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Метод setInterval() для Window

Объект Window JavaScript

setInterval()Метод повторно вызывает функцию или выполняет фрагмент кода с фиксированной временной задержкой между вызовами.

Метод setInterval() будет продолжать вызывать указанную функцию или код до тех пор, пока не будет вызванclearInterval()метод или закрытие окна.

Этот метод возвращает уникальный идентификатор интервала, поэтому вы можете в будущем удалить его, вызовав clearInterval().

Чтобы выполнить функцию только один раз в течение指定的 миллисекунд, используйтеsetTimeout()Метод.

Грамматика:

window.setInterval(function, delay, param1, param2, ...)
setInterval(function(){ alert("Hello World"); }, 2000);
Проверьте, пожалуйста‹/›

Совместимость браузеров

Числа в таблице указывают на первую версию браузера, которая полностью поддерживает метод setInterval():

Метод
setInterval()11414

Значение параметра

ПараметрыОписание
function(обязательное) Каждыйdelay (задержка)Выполнение функции один раз в миллисекунду
delay(обязательное) Таймер должен быть в миллисекундах (1000 мс = 1 секунда), и он будет задерживать выполнение между указанной функцией или кодом. Если это значение меньше 10, то используется значение 10
param1, param2, ...(по желанию) Передача в этотfunction(функция)Другие параметры  (не поддерживается в версиях IE9 и более ранних)

Технические детали

Возвратное значение:Число, представляющее интервал ID значения установленных таймеров. Этот значения можно использовать вместе с методом clearInterval() для отмены таймера

更多实例

此示例引用外部“命名”函数:

var intervalID;
function myFunc() {
  intervalID = setInterval(myCallback, 2000);
}
function myCallback() {
  alert("Hello World");
}
Проверьте, пожалуйста‹/›

显示当前时间(就像数字手表一样,每1秒钟执行一次“ startTimer()”函数):

var intervalID = setInterval(startTimer, 1000);
function startTimer() {
   var date = new Date();
   var x = document.getElementById("result");
   x.innerHTML = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
}
Проверьте, пожалуйста‹/›

在上一个示例中,使用clearInterval()来停止时间:

var intervalID = setInterval(startTimer, 1000);
function startTimer() {
   var date = new Date();
   var x = document.getElementById("result");
   x.innerHTML = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
}
function stopTimer() {
   clearInterval(intervalID);
}
Проверьте, пожалуйста‹/›

每200毫秒一次在两种背景颜色之间切换,直到由clearInterval()将其停止:

var t = setInterval(setColor, 200);
function setColor() {
   var x = document.body;
   x.style.backgroundColor = (x.style.backgroundColor == "coral") ? "lightgreen" : "coral";
}
function stopColor() {
   clearInterval(t);
}
Проверьте, пожалуйста‹/›

使用setInterval()和clearInterval()创建动态进度条:

var i = 0;
var bar = document.getElementById("progress-bar");
var t;
function start() {
  t = setInterval(progress, 60);
}
function progress() {
  if(i < 100) {
 i++;
 bar.style.width = i + "%";
 bar.innerHTML = i + " %";
  }
 clearInterval(t);
  }
}
function stop() {
  clearInterval(t);
}
Проверьте, пожалуйста‹/›

Передайте параметры функции myFunc (не работает в IE9 и более ранних версиях):

var intervalID = setInterval(myFunc, 2000, "First", "Second", "Third");
Проверьте, пожалуйста‹/›

Но, если вы используете анонимную функцию, она будет работать во всех браузерах:

var intervalID = setInterval(function() { myFunc("First", "Second", "Third"); }, 2000);
Проверьте, пожалуйста‹/›

См. также

Справка по окну (Window):Метод clearInterval()

Справка по окну (Window):Метод setTimeout()

Справка по окну (Window):Метод clearTimeout()

Объект Window JavaScript