javascript div中的自动滚动

javascript div中的自动滚动,javascript,html,Javascript,Html,当我在javascript div中使用上述函数在聊天框中自动滚动时 但我无法向上滚动到底部 window.setInterval(function() { var elem = document.getElementById('chatlog'); elem.scrollTop = elem.scrollHeight; }, 10); 聊天日志是我代码中的一个div,我已经在上面添加了滚动回复的功能。现在我无法向上滚动。这是逻辑错误。在您的代码中,每10毫秒您的脚本将滚动div到底部。如何

当我在javascript div中使用上述函数在聊天框中自动滚动时 但我无法向上滚动到底部

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

聊天日志是我代码中的一个div,我已经在上面添加了滚动回复的功能。现在我无法向上滚动。

这是逻辑错误。在您的代码中,每10毫秒您的脚本将滚动div到底部。如何实现autoscroll行为有许多变体。其中一个使用标志,该标志将通过复选框(autoscroll)设置。如果选中复选框,脚本将向下滚动,如果取消选中,脚本将不执行任何操作

比如:

window.setInterval(function() {
 if (needAutoScroll) {
     var elem = document.getElementById('chatlog');
     elem.scrollTop = elem.scrollHeight;
 }
}, 10);

我的猜测是,因为它每秒都会向下滚动到div的底部,所以您无法向上滚动。因此,在向上滚动时,必须清除
setInterval
功能

您可以在您的
chatlog
div中尝试此功能

函数myStopFunction(){

如果document.body.scrollTop你想做什么?你能再解释一点吗?我的代码中chatlog是div,我已经设置了上面的函数来滚动回复,现在我不能向上滚动了。你能做个提琴吗?这里已经回答了:请确保你的chatlog元素设置了height属性,这样scrollTop也可以工作。这可能很聪明滚动到底部时自动选中该框(如果以前未手动取消选中),并在开始向上滚动时自动取消选中该框。但这是一个更复杂的逻辑,因此需要更多的解释。是的,这是可能的:-)刚才的问题是:现在我无法向上滚动。所以我提供了一个最简单的决定。当然。刚从您的答案中得到启发:)干杯!谢谢,太多了。我们可以制作很棒的滚动:-)
function myStopFunction() {

if document.body.scrollTop <= 0 {
 console.log("scrolling down")
} else {
console.log("scrolling up");
 clearInterval(myVar);
}

}