Синтаксис JavaScript Справочник JavaScript JSON Коды клавиш События Строгий режим

setTimeout()

Поддержка браузерами

4.0+ 4.0+ 1.0+ 1.0+ 4.0+ 1.0+

Описание

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

Примечание: данная функция вызывается на исполнение только один раз, если необходимо повторение выполнения действий через определённый промежуток времени воспользуйтесь функцией setInterval().

setTimeout() в циклах

Некоторые новички в JavaScript пытаются использовать метод setTimeout() в циклах для анимации. Однако никакой анимации в итоге не получают и вот почему. Метод setTimeout() вызывает указанную функцию только один раз: он регистрирует функцию, которая должна быть вызвана через указанное количество миллисекунд, когда указанная задержка истечёт, функция будет вызвана. Поместив метод setTimeout() в тело цикла, при каждой итерации будет зарегистрирован вызов функции через указанный промежуток времени, но так как цикл отрабатывает итерации слишком быстро, то все вызовы регистрируются практически в одно время и создаётся ощущение, что метод setTimeout() отработал всего один раз, а не указанное количество.

Если хочется создать анимацию, то для этой цели необходимо использовать метод setInterval().

Синтаксис

timeoutID = setTimeout(func[, delay, param1, param2, ...]);
timeoutID = setTimeout(code[, delay]);

Аргументы

Возвращаемое значение

Пример

<!doctype html>
<html lang="ru">
<head>
  <meta charset="utf-8">
  <title>Название веб-страницы</title>
</head>
<body>

  <p><button onclick="showAlert();">Вызвать alert через 3 секунды</button></p>
  <p><button onclick="clearAlert();">Отменить вызов alert</button></p>

<script>
let timeoutID;

function showAlert() {
  timeoutID = setTimeout("alert('Та-да!');", 3000);
}

function clearAlert() {
  clearTimeout(timeoutID);
}
</script>

</body>
</html>
Попробовать »
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011-2018 © puzzleweb.ru

Реклама на сайте | puzinfo@puzzleweb.ru