Javascript自动滚动div内容,同时仍然能够手动滚动

Javascript自动滚动div内容,同时仍然能够手动滚动,javascript,html,Javascript,Html,我目前正在使用此代码自动滚动到bottem。但每当我想手动滚动时,我就是做不到。因为上面的代码就是这样工作的。 有人能帮我吗 我希望上面的代码+能够手动滚动和禁用自动滚动。但是我该如何编码呢?您设置了间隔,但它从不停止。因此,无论何时尝试滚动,间隔都会将其设置回底部。假设您的时间间隔为0毫秒,那么在滚动时,代码的速度比您快。要解决此问题,只需删除setInterval。可能您正在尝试实现平滑滚动;如果是这样的话,您就错了,因为您的代码只是自动滚动到底部。 只需使用: window.setInte

我目前正在使用此代码自动滚动到bottem。但每当我想手动滚动时,我就是做不到。因为上面的代码就是这样工作的。 有人能帮我吗


我希望上面的代码+能够手动滚动和禁用自动滚动。但是我该如何编码呢?

您设置了间隔,但它从不停止。因此,无论何时尝试滚动,间隔都会将其设置回底部。假设您的时间间隔为0毫秒,那么在滚动时,代码的速度比您快。要解决此问题,只需删除
setInterval
。可能您正在尝试实现平滑滚动;如果是这样的话,您就错了,因为您的代码只是自动滚动到底部。 只需使用:

window.setInterval(function() {
var elem = document.getElementById('pullout');
elem.scrollTop = elem.scrollHeight;
}, 0);

你设定了间隔,但它从不停止。因此,无论何时尝试滚动,间隔都会将其设置回底部。假设您的时间间隔为0毫秒,那么在滚动时,代码的速度比您快。要解决此问题,只需删除
setInterval
。可能您正在尝试实现平滑滚动;如果是这样的话,您就错了,因为您的代码只是自动滚动到底部。 只需使用:

window.setInterval(function() {
var elem = document.getElementById('pullout');
elem.scrollTop = elem.scrollHeight;
}, 0);

我只会在添加新聊天信息时滚动,而不是连续滚动。大概是这样的:

 function funcName(){
   var elem = document.getElementById('pullout');
   elem.scrollTop = elem.scrollHeight; 
  }

然后,找到添加新聊天信息的代码,并在添加信息后调用
scrollToBottom()

我只会在添加新聊天信息时滚动,而不是连续滚动。大概是这样的:

 function funcName(){
   var elem = document.getElementById('pullout');
   elem.scrollTop = elem.scrollHeight; 
  }

然后,找到添加新聊天信息的代码,并在添加信息后调用
scrollToBottom()

您需要使用鼠标悬停和鼠标悬停检测来禁用和重新启用自动滚动。您是否使用过任何用于滚动的单击事件?因为如果您在
ready
函数中使用了上述代码,那么它将在每次间隔后运行,您希望它何时滚动到底?元素首次加载的时间<代码>窗口。设置间隔将持续滚动到底部,这就是为什么您会看到这种行为。@AJRichardson我希望它持续滚动到底部。因为div“pullout”有一个聊天系统。因此,在任何给定的时间都可以有聊天信息。代码就是这样做的,但我现在不能手动滚动…你可以尝试检测用户何时尝试滚动,如果发生这种情况,停止间隔;一旦用户停止尝试滚动,请重新启动间隔。您将需要使用鼠标悬停和鼠标悬停检测来禁用和重新启用自动滚动。您是否使用了任何用于滚动的单击事件?因为如果您在
ready
函数中使用了上述代码,那么它将在每次间隔后运行,您希望它何时滚动到底?元素首次加载的时间<代码>窗口。设置间隔将持续滚动到底部,这就是为什么您会看到这种行为。@AJRichardson我希望它持续滚动到底部。因为div“pullout”有一个聊天系统。因此,在任何给定的时间都可以有聊天信息。代码就是这样做的,但我现在不能手动滚动…你可以尝试检测用户何时尝试滚动,如果发生这种情况,停止间隔;一旦用户停止尝试滚动,请重新启动间隔。您必须将
funcName'函数附加到事件:类似于
document.getElementById('top')。onclick=funcName`。如果您这样做了,但它不起作用,请说明发生了什么。您必须将
funcName'函数附加到事件:类似于
document.getElementById('top')。onclick=funcName`。如果你那样做了,但没有成功,请告诉我发生了什么。