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;