Javascript 只有当用户将滚动条移动到底部时,如何在底部保持动态滚动条?
我有一个scrollview,其中的内容正在通过ajax查询刷新(增加其大小) 我希望,当用户在底部有滚动条时(就像所有IDE中常见的那样),滚动条必须在底部被覆盖,即使在添加更多文本时也是如此 我试图用以下代码查找滚动条何时位于底部:Javascript 只有当用户将滚动条移动到底部时,如何在底部保持动态滚动条?,javascript,html,scroll,scrollbar,Javascript,Html,Scroll,Scrollbar,我有一个scrollview,其中的内容正在通过ajax查询刷新(增加其大小) 我希望,当用户在底部有滚动条时(就像所有IDE中常见的那样),滚动条必须在底部被覆盖,即使在添加更多文本时也是如此 我试图用以下代码查找滚动条何时位于底部: var scrollDiv = $('#modalText'); var height = scrollDiv[0].scrollHeight; if (scrollDiv[0].scrollTop==height){ //scroll is in the b
var scrollDiv = $('#modalText');
var height = scrollDiv[0].scrollHeight;
if (scrollDiv[0].scrollTop==height){
//scroll is in the bottom, must force the scroll to bottom
}else{
//scroll is not in the bottom, must maintain the scroll point
}
问题是scrollDiv[0]。scrollTop不等于scrollDiv[0]。scrollHeight当用户将滚动条放在底部时,我不明白为什么,但它大约少了900像素
有人对此有什么解决方案吗?您面对的900的差异是因为视口/客户端高度不同。如果将其添加到计算中,您将发现
scrollHeight==scrollTop+clientHeight
。您可以在Mozilla基金会的文档中查看这一点。您需要将高度添加到滚动顶部
以获得滚动底部
var scrollDiv=$('#modalText');
函数add(){
var height=scrollDiv[0]。scrollHeight;
var scroll=scrollDiv[0]。scrollTop+scrollDiv[0]。远视;
scrollDiv.append(“”+数字(新日期())+”);
如果(滚动==高度){
//滚动在底部,必须强制滚动到底部
scrollDiv.scrollTop(高度);
}否则{
//滚动不在底部,必须保持滚动点
}
};代码>
#modalText{
最大高度:180像素;
溢出:自动;
宽度:200px;
背景色:#F5;
填充:10px;
框大小:边框框;
}
添加
您的回答似乎很好,但在我的情况下不起作用。高度是52058,卷轴是52048.5,所以它们不一样。你知道为什么吗?这可能是因为padding
如果你有padding-top和padding-bottom,那么scroll=scrollDiv[0].scrolldop+scrollDiv[0].offsetHeight代码>