Почему показывает, что прокрутки у страницы нету в while, хотя она есть?

В JavaScript, проверка наличия прокрутки страницы может вызывать некоторые трудности, поскольку реализация может отличаться в разных браузерах. Однако, обычно можно использовать свойства объекта window для проверки наличия прокрутки.

Одно из свойств, которое может использоваться для этой цели - это свойство scrollY. Оно возвращает текущую вертикальную позицию прокрутки страницы. Если его значение больше нуля, значит, страница была прокручена.

Кроме того, можно использовать свойства scrollHeight и clientHeight. Свойство scrollHeight возвращает общую высоту содержимого страницы, включая скрытую часть, которая выходит за пределы видимой области. Свойство clientHeight возвращает высоту видимой области страницы. Если scrollHeight больше clientHeight, это означает наличие вертикальной прокрутки.

Также, чтобы упростить проверку наличия прокрутки, можно создать функцию, которая будет возвращать булевое значение - true, если прокрутка доступна, и false - если ее нет. Например:

function hasVerticalScroll() {
  return (window.innerHeight < document.body.scrollHeight);
}

while (hasVerticalScroll()) {
  // код, который будет выполняться, пока страница прокручена
}

Такой подход поможет отслеживать наличие прокрутки и выполнять нужный код в цикле, пока прокрутка страницы имеет место.