2009-08-08 3 views
18

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

ответ

29

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

Вы можете проверить мой пример here.

+1

@CMS: Отличный ответ! – Josh

+0

window.scrollTo (0,0); не работает для меня в chomre – SuperUberDuper

9

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

window.scrollBy (0,50)

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

2

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

4

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

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

+1

Доступны ли они во всех браузерах или требуется какое-либо обнаружение функции? –

Смежные вопросы