Получить позицию прокрутки с помощью jquery

Странный запрос, но мне нужно получить текущую позицию прокрутки браузера в качестве переменной. Какую функцию js или jquery следует использовать? Мне нужно, чтобы выяснить, какие элементы отображать на стороне. Я нашел несколько вещей в Интернете, но ничего не работает для моего div, просто полная страница.

Ответ 1

вариант кросс-браузера

$(document).scrollTop();

Ответ 2

Старые браузеры IE и Firefox присоединяют полосу прокрутки к documentElement, или тег <html> в HTML.

Все остальные браузеры прикрепляют полосу прокрутки к document.body, или тег <body> в HTML.

Правильным решением было бы проверить, какой из них использовать, в зависимости от браузера

var doc = document.documentElement.clientHeight ? document.documentElement : document.body;
var s   = $(doc).scrollTop();

jQuery делает это немного легче, когда передача в window или document jQuery scrollTop выполняет аналогичную проверку и вычисляет ее, поэтому любой из них должен работать в кросс-браузере

var s = $(document).scrollTop();

или

var s = $(window).scrollTop();

jQuery scrollTop() docs

Описание: Получить текущее вертикальное положение полосы прокрутки для первый элемент в наборе согласованных элементов или установить вертикальный положение полосы прокрутки для каждого согласованного элемента.


... ничего не работает для моего div, просто полная страница

Если это для DIV, вам нужно будет настроить таргетинг на элемент с прикрепленной полосой прокрутки, чтобы получить прокрученную сумму

$('div').scrollTop();

Если вам нужно получить расстояние элементов от верхней части документа, вы также можете сделать

$('div').offset().top

Ответ 3

Я считаю, что лучший метод с jQuery использует .scrollTop():

var pos = $('body').scrollTop();

Ответ 4

Используйте scrollTop(), чтобы получить или установить положение прокрутки.