Сброс значения «отметка времени» в requestAnimationFrame ()? - PullRequest
0 голосов
/ 27 августа 2018

В настоящее время я делаю слайд-шоу, которое поворачивает слайды через 10 секунд, и использую requestAnimationFrame для этого.

Однако у меня возникли некоторые проблемы с отметкой времени. Я хочу отслеживать значение метки времени (что не проблема) и, когда оно достигает значения более 10000 (10 секунд), сбросить метку времени до 0 и продолжить работу. Однако, когда я пытаюсь изменить значение метки времени, ничего не происходит. Предполагая, что это const? Установка переменной в performance.now () с каждым вызовом также ведет себя не совсем так, как я ожидал.

Хотите знать, каким будет наилучшее решение этой проблемы, возможно, какое-то использование performance.now ()? Спасибо!

1 Ответ

0 голосов
/ 28 августа 2018

Когда цикл начинается, сохраните ссылку на время его запуска. Затем обновите эту переменную, а не пытайтесь изменить метку времени.

let start = null;
let loop = (timestamp) => {
  if (!start) {
    start = timestamp;
  };
  const progress = timestamp - start;
  if (progress > 10000) {
    console.log('loop', start);
    start = timestamp;
  }
  requestAnimationFrame(loop)
};
requestAnimationFrame(loop);
...