Javascript 只有当用户将滚动条移动到底部时,如何在底部保持动态滚动条?

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

我有一个scrollview,其中的内容正在通过ajax查询刷新(增加其大小)

我希望,当用户在底部有滚动条时(就像所有IDE中常见的那样),滚动条必须在底部被覆盖,即使在添加更多文本时也是如此

我试图用以下代码查找滚动条何时位于底部:

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