Подтвердить что ты не робот

Изменение положения полосы прокрутки

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

4b9b3361

Ответ 1

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

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); 
     } 
   }; 
};

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

Ответ 2

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

window.scrollBy(0,50)

50 - количество пикселей, которые вы хотите прокрутить.

Ответ 3

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

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

Ответ 4

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