Изменение положения полосы прокрутки - PullRequest
20 голосов
/ 08 августа 2009

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

Ответы [ 4 ]

31 голосов
/ 08 августа 2009

Вы можете рассчитать процент текущей позиции полосы прокрутки, используя событие 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); 
     } 
   }; 
};

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

9 голосов
/ 08 августа 2009

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

window.scrollBy(0,50)

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

4 голосов
/ 08 августа 2009

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

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

2 голосов
/ 08 августа 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...