Странный запрос, но мне нужно получить текущую позицию прокрутки браузера в качестве переменной. Какую функцию js или jquery следует использовать? Мне нужно, чтобы выяснить, какие элементы отображать на стороне. Я нашел несколько вещей в Интернете, но ничего не работает для моего div, просто полная страница.
Получить позицию прокрутки с помощью jquery
Ответ 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();
Описание: Получить текущее вертикальное положение полосы прокрутки для первый элемент в наборе согласованных элементов или установить вертикальный положение полосы прокрутки для каждого согласованного элемента.
... ничего не работает для моего div, просто полная страница
Если это для DIV, вам нужно будет настроить таргетинг на элемент с прикрепленной полосой прокрутки, чтобы получить прокрученную сумму
$('div').scrollTop();
Если вам нужно получить расстояние элементов от верхней части документа, вы также можете сделать
$('div').offset().top
Ответ 3
Я считаю, что лучший метод с jQuery использует .scrollTop()
:
var pos = $('body').scrollTop();
Ответ 4
Используйте scrollTop(), чтобы получить или установить положение прокрутки.