@answerson

Как сделать прокрутку видимой области экрана через заданное количество секунд?

Есть HTML документ, который по сути является длинным текстом.
Необходимо сделать прокрутку видимой части через заданное количество секунд. То есть, по сути необходима функция читалки.
Есть скрипты для автоматического скроллинга, но тут задача как раз в том, чтобы видимая часть экрана поднималась вверх полностью через X секунд, и так до конца страницы.
  • Вопрос задан
  • 253 просмотра
Решения вопроса 1
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Задача на "Скорость-время-расстояние" =)

Скорость = screen.height / 1000; /* один экран за одну секунду */
Расстояние = body.scrollHeight; /* высота всей страницы */
Время = ?

Время = Расстояние / Скорость;

$('body').animate({scrollTop: Расстояние * -1}, Время);


или через пропорцию

screen.height - 1000
body.scrollHeight - t?

t = body.scrollHeight * 1000 / screen.height;


PS.
Высота страницы чуть сложнее определяется.
ScrollTop нужно точнее вычислять (высота страницы минус один экран).
Точный синтаксис animate я не помню.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
hzzzzl
@hzzzzl
function scroll() {
  const SECONDS_INTERVAL = 2   // как часто листать

  window.scrollTo({
    top: window.pageYOffset + window.innerHeight,
    behavior: 'smooth'
  });

  if(window.pageYOffset + window.innerHeight + 30 <= document.body.clientHeight) {
    setTimeout(scroll, SECONDS_INTERVAL * 1000)
  }
}


scroll()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы