与jQuery中的“scrollTop”相反

时间:2010-11-15 21:18:03

标签: jquery

jQuery有一个名为scrollTop的函数,可用于查找隐藏在当前页面视图上方的像素数。

我不确定原因,但没有scrollBottom函数返回当前页面视图下方的像素数。

是否有添加此功能的jQuery插件?或者是否需要使用窗口/文档高度和scrollTop值进行精心设计的数学运算?

8 个答案:

答案 0 :(得分:36)

你可以为此制作一个非常简单的插件:

$.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

答案 1 :(得分:1)

也许这会对how to tell jquery to scroll to bottom有所帮助,因为实际上没有相反的功能。同样是scrollLeft的问题 - 没有scrollRight

答案 2 :(得分:1)

如果您想向下滚动(与“scrollTop”相反),请尝试使用参数的垂直位置。像这样:

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

身体的顶部将是:$("body").scrollTop(0);

答案 3 :(得分:0)

您可以尝试使用scrollTo插件并执行以下操作:

$.scrollTo( document.height )

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

当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);
}

答案 6 :(得分:0)

这就是我计算从元素底部到文档底部的距离:

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

答案 7 :(得分:0)

试试这个:

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