Можно ли изменить положение полосы прокрутки, когда пользователь достигает определенной точки, прокручивающей веб-страницу? Например, как только вы достигнете половины пути вниз по странице, полоса прокрутки автоматически вернется к вершине.
Изменение положения полосы прокрутки
Ответ 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) должен предоставить вам текущую позицию прокрутки практически в любом браузере.