Получить положение прокрутки с помощью jquery



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

377   4  

4 ответов:

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

$(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();

jQuery scrollTop() docs

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


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

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

$('div').scrollTop();

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

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

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

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

использовать scrollTop() для получения или установки положения прокрутки.

Comments

    Ничего не найдено.