如何使用jQuery检查DIV是否滚动到底部
How to check if a DIV is scrolled all the way to the bottom with jQuery
我有一个溢出:scroll的div
我想知道它当前是否一直向下滚动。如何使用JQuery?
这个不起作用:我如何确定一个div是否滚动到底部?
这是正确的解决方案(jsfiddle)。简单看一下代码:
$(document).ready(function () {
$('div').on('scroll', chk_scroll);
});
function chk_scroll(e) {
var elem = $(e.currentTarget);
if (elem[0].scrollHeight - elem.scrollTop() == elem.outerHeight()) {
console.log("bottom");
}
}
function isScrolledToBottom(el) {
var $el = $(el);
return el.scrollHeight - $el.scrollTop() - $el.outerHeight() < 1;
}
这是@samccone的答案的变体,包含了@HenrikChristensen关于亚像素测量的评论。
因为它不需要jQuery:
var isBottom = node.scrollTop + node.offsetHeight === node.scrollHeight;
I do:
var node = $('#mydiv')[0]; // gets the html element
if(node) {
var isBottom = node.scrollTop + node.offsetHeight === node.scrollHeight;
}
您可以通过
(scrollHeight - scrollTop()) == outerHeight()
代码如下:
$("#div_Id").scroll(function (e) {
e.preventDefault();
var elem = $(this);
if (elem.scrollTop() > 0 &&
(elem[0].scrollHeight - elem.scrollTop() == elem.outerHeight())) {
alert("At the bottom");
}
});
自2012年起,Firefox包含scrollTopMax
属性。如果scrollTop === scrollTopMax
在元素的底部
不使用jquery,用于onScroll事件
var scrollDiv = event.srcElement.body
window.innerHeight + scrollDiv.scrollTop == scrollDiv.scrollHeight
对我来说,$el.outerHeight()
给出了错误的值(由于边界宽度),而$el.innerHeight()
给出了正确的值,所以我使用
function isAtBottom($el){
return ($el[0].scrollHeight - $el.scrollTop()) == $el.innerHeight();
}
相关文章:
- 将视口底部滚动到元素底部
- 固定位置菜单时滚动,直到它击中一个相对容器的底部
- javascript跨浏览器确定用户是否滚动到页面底部
- javascript移动交叉浏览器确定用户是否滚动到页面底部
- 如何防止firefox在打开大型弹出窗口时滚动到页面底部
- 滚动到顶部或底部后的简单效果
- jQuery滚动到聊天框底部
- 如何仅在向上滚动时将页脚粘贴到窗口底部会导致页脚不显示
- 页面加载时自动滚动到底部
- 当滚动条到达容器底部时设置动画
- 表-滚动到底部
- 滚动至页面底部附近
- 刷新滚动到底部
- 在底部滚动
- 在不使用Javascript的情况下将滚动条滚动到底部
- JQuery 自动滚动到底部(但在鼠标滚动时禁用)
- 页脚在滚动底部时没有设置高度动画
- Javascript -在另一个浏览器/页面中滚动底部
- 如何检测何时滚动底部高度为<30.
- 如何获得窗口.滚动底部高度