Напротив "scrollTop" в jQuery
jQuery имеет функцию scrollTop, которая может использоваться для поиска количества пикселей, скрытых над текущим просмотром страницы.
Я не уверен, почему, но нет функции scrollBottom, которая возвращает количество пикселей ниже текущего просмотра страницы.
Есть ли плагин jQuery, который добавляет эту функциональность? Или это потребует некоторой сложной математики с высотой окна/документа и значением scrollTop?
Ответы
Ответ 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
Ответ 2
Возможно, это поможет как сообщить jquery о прокрутке вниз, так как нет никакой противоположной функции. То же самое и проблема с scrollLeft - нет scrollRight
Ответ 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();