Метод перекрестного браузера для определения вертикального процента прокрутки в JavaScript

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

Достаточно легко захватить onscroll событие для увольнения, когда пользователь прокручивает страницу вниз, но как я узнаю в том событии, как далеко они прокрутили? В этом случае процент особенно - то, что важно. Я особенно не волнуюсь по поводу решения для IE6.

Какая-либо из главных платформ (Dojo, jQuery, Прототип, Mootools) выставляет это в простом перекрестном браузере совместимый путь?

42
задан Spikatrix 16 March 2019 в 05:13
поделиться

3 ответа

Это должно помочь, никаких библиотек не требуется:

function currentScrollPercentage()
{
    return ((document.documentElement.scrollTop + document.body.scrollTop) / (document.documentElement.scrollHeight - document.documentElement.clientHeight) * 100);
}
9
ответ дан 26 November 2019 в 23:21
поделиться

Использование jQuery

$(window).scrollTop();

даст вам прокрутку положение, затем вы можете определить, какой процент зависит от высоты окна.

Существует также стандартное свойство DOM scrollTop , которое можно использовать, например, document.body.scrollTop , однако я не уверен, как это ведет себя в кроссбраузерности. есть несоответствия, которые учитывает метод jQuery.

-1
ответ дан 26 November 2019 в 23:21
поделиться

Если вы используете Dojo, вы можете сделать следующее:

var vp = dijit.getViewport();
return (vp.t / (document.documentElement.scrollHeight - vp.h));

Что вернет значение от 0 до 1.

2
ответ дан 26 November 2019 в 23:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: