Учебники

D3.js — таймер API

Модуль API таймера используется для одновременной анимации с синхронизированной задержкой. Он использует requestAnimationFrame для анимации. В этой главе подробно описывается модуль API таймера.

requestAnimationFrame

Этот метод сообщает браузеру, что вы хотите выполнить анимацию, и запрашивает, чтобы браузер вызвал указанную функцию для обновления анимации.

Настройка таймера

Мы можем легко загрузить таймер напрямую из d3js.org, используя следующий скрипт.

<script src = "https://d3js.org/d3-timer.v1.min.js"></script>
<script>
   var timer = d3.timer(callback);
</script>

Методы API таймера

API таймера поддерживает следующие важные методы. Все это подробно объясняется следующим образом.

d3.now ()

Этот метод возвращает текущее время.

d3.timer (обратный вызов [, задержка [, время]])

Этот метод используется для планирования нового таймера и вызывает таймер до его остановки. Вы можете установить числовую задержку в MS, но это необязательно, в противном случае по умолчанию устанавливается ноль. Если время не указано, оно считается d3.now ().

timer.restart (обратный вызов [, задержка [, время]])

Перезапустите таймер с указанным обратным вызовом и дополнительными задержкой и временем.

timer.stop ()

Этот метод останавливает таймер, предотвращая последующие обратные вызовы.

d3.timeout (обратный вызов [, задержка [, время]])

Он используется для остановки таймера при первом обратном вызове. Обратный вызов передается как истекшее время.

d3.interval (обратный вызов [, задержка [, время]])

Он вызывается в определенный интервал задержки. Если задержка не указана, требуется время таймера.

пример

Создайте веб-страницу «timer.html» и добавьте в нее следующий скрипт.

<!DOCTYPE html>
<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>

   <body>
      <h3> Timer API </h3>
      <script>
         var timer = d3.timer(function(duration) {
            console.log(duration);
            if (duration > 150) timer.stop();
         }, 100);
      </script>
   </body>
</html>

Мы увидим следующий ответ на экране.