Вопрос

Можно ли изменить положение полосы прокрутки, когда пользователь достигает определенной точки, прокручивая веб-страницу?Например, как только вы достигнете половины страницы вниз, полоса прокрутки автоматически переместится обратно наверх.

Это было полезно?

Решение

Вы можете рассчитать процент текущей позиции полосы прокрутки, используя прокрутка событие, и если оно достигает 50 %, положение прокрутки можно установить в верхнюю часть страницы с помощью прокрутить до функция:

window.onload = function () { 
  window.onscroll = function () { 
    var doc = document.body, 
    scrollPosition = doc.scrollTop,
    pageSize = (doc.scrollHeight - doc.clientHeight),
    percentageScrolled = Math.floor((scrollPosition / pageSize) * 100); 

     if (percentageScrolled >= 50){ // if the percentage is >= 50, scroll to top
       window.scrollTo(0,0); 
     } 
   }; 
};

Вы можете проверить мой пример здесь.

Другие советы

Да, я видел это несколько раз.Вот немного JS-кода:

window.scrollBy(0,50)

50 — это количество пикселей, на которое вы хотите прокрутить.

Три функции прокрутки, о которых вы захотите побеспокоиться: window.scroll(x,y), window.scrollBy(dx,dy), и window.scrollTo(x,y).

Как упомянул Дэвид, вам понадобится положение прокрутки, чтобы знать, где вы находитесь, и использовать window.onscroll событие, чтобы запустить этот расчет.

(window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop) должен предоставить вам текущую позицию прокрутки практически в любом браузере.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top