Подтвердить что ты не робот

Напротив "scrollTop" в jQuery

jQuery имеет функцию scrollTop, которая может использоваться для поиска количества пикселей, скрытых над текущим просмотром страницы.

Я не уверен, почему, но нет функции scrollBottom, которая возвращает количество пикселей ниже текущего просмотра страницы.

Есть ли плагин jQuery, который добавляет эту функциональность? Или это потребует некоторой сложной математики с высотой окна/документа и значением scrollTop?

4b9b3361

Ответ 1

Вы можете сделать довольно простой плагин для этого:

$.fn.scrollBottom = function() { 
  return $(document).height() - this.scrollTop() - this.height(); 
};

Затем назовите его любым желаемым элементом, например:

$(window).scrollBottom();  //how many pixels below current view
$("#elem").scrollBottom(); //how many pixels below element

Ответ 3

Если вы хотите прокрутить вниз (напротив "scrollTop" ), попробуйте использовать вертикальную позицию в аргументе. Вот так:

$(document).ready(function(){
    $("button").click(function(){
                           //position on pixeles
        $("body").scrollTop(1300);
    });
});

Верхняя часть тела будет: $("body").scrollTop(0);

Ответ 4

Вы можете попробовать scrollTo плагин и сделать что-то вроде:

$.scrollTo( document.height )

Ответ 5

function scrollBottom()
{
    return $( window ).scrollTop() + $( window ).height();
}

// example usage
$( '#footer' ).css( 'top', scrollBottom() - $( '#footer' ).height() );

Ответ 6

Поскольку поведение по умолчанию scrollTop прокручивается до 0 при передаче отрицательного значения, я сделал эту функцию, которая обрабатывает scrollTop и имитирует "scrollDown".

Если anchor_pos отрицательный (так что он выше моей текущей позиции прокрутки), я вычитаю его значение из текущей позиции прокрутки (поскольку он имеет отрицательное значение, я использую знак +)

function jumpToAnchor(scrollable_div_selector, anchor_selector)
{
    anchor_pos = $(anchor_selector).position().top;

    //check if negative number
    if (anchor_pos < 0)
    {
        anchor_pos = $(scrollable_div_selector).scrollTop() + anchor_pos; //anchor_pos is negative, so i'm substracting it
    }

    $(scrollable_div_selector).scrollTop(anchor_pos);
}

Ответ 7

Вот как я вычислил расстояние от нижней части элемента до нижней части документа:

$(document).height() - ($('#element').offset().top + $('#element').height());

Ответ 8

попробуйте следующее:

return this[0].scrollHeight - this.scrollTop() - this.height();