jquery:$(窗口).scrollTop()但没有$(窗口).scrollBottom()

每当用户滚动页面时,我都希望将元素放置在页面的底部。 这就像“固定位置”,但我不能使用“位置:固定”的CSS,因为我的许多客户的浏览器不能支持。

我注意到jquery可以获得当前视口的顶部位置,但是如何获取滚动视口的底部?

所以我问如何知道:$(window).scrollBottom()

var scrollBottom = $(window).scrollTop() + $(window).height(); 

我会说scrollBottom作为scrollTop的直接对面应该是:

 var scrollBottom = $(document).height() - $(window).height() - $(window).scrollTop(); 

这是一个对我很有用的小丑testing:

 // SCROLLTESTER START // $('<h1 id="st" style="position: fixed; right: 25px; bottom: 25px;"></h1>').insertAfter('body'); $(window).scroll(function () { var st = $(window).scrollTop(); var scrollBottom = $(document).height() - $(window).height() - $(window).scrollTop(); $('#st').replaceWith('<h1 id="st" style="position: fixed; right: 25px; bottom: 25px;">scrollTop: ' + st + '<br>scrollBottom: ' + scrollBottom + '</h1>'); }); // SCROLLTESTER END // 

为了将来,我已经把scrollBottom变成了一个jQuery插件,可以像scrollTop一样使用(也就是说,你可以设置一个数字,它将从页面底部滚动这个数量,并返回底部像素的数量如果没有提供数字,则返回页面底部的像素数量)

 $.fn.scrollBottom = function(scroll){ if(typeof scroll === 'number'){ window.scrollTo(0,$(document).height() - $(window).height() - scroll); return $(document).height() - $(window).height() - scroll; } else { return $(document).height() - $(window).height() - $(window).scrollTop(); } } //Basic Usage $(window).scrollBottom(500); 
 var scrollBottom = $(document).height() - $(window).height() - $(window).scrollTop(); 

我认为最好是底部滚动。

这将滚动到顶部:

 $(window).animate({scrollTop: 0}); 

这将滚动到最底部:

 $(window).animate({scrollTop: $(document).height() + $(window).height()}); 

..如有必要,将窗口更改为所需的容器标识或类(引号)。

这里是滚动到表格网格底部的最佳选项,它将滚动到表格网格的最后一行:

  $('.add-row-btn').click(function () { var tempheight = $('#PtsGrid > table').height(); $('#PtsGrid').animate({ scrollTop: tempheight //scrollTop: $(".scroll-bottom").offset().top }, 'slow'); }); 

这是一个快速的黑客攻击:只需将滚动值分配给一个非常大的数字。 这将确保页面滚动到底部。 使用普通的javascript:

 document.body.scrollTop = 100000;