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