如何在JavaScript中保持滚动始终向下?

如何在JavaScript中保持滚动始终向下?,javascript,scroll,Javascript,Scroll,我有一个div,我想一直向下滚动 scrollDown(){ var chatt = this.conversa; this.conversa.scrollTop = chatt.scrollHeight; } verificKeyPress(e){ if (e.key == "Enter") { this.scrollDown(); ... } } <div id="scroll" ref={(conversa) => t

我有一个div,我想一直向下滚动

scrollDown(){
  var chatt = this.conversa;
  this.conversa.scrollTop = chatt.scrollHeight;
}

verificKeyPress(e){
  if (e.key == "Enter") {
    this.scrollDown();
    ...
  }
}

            <div id="scroll" ref={(conversa) => this.conversa = conversa} style={{display: "block",overflowY: "auto", overflowX: "hidden", position: "absolute", ...}}>
              ...
            </div>
scrollDown(){
var chatt=this.conversa;
this.conversa.scrollTop=chatt.scrollHeight;
}
验证压力(e){
如果(e.key==“输入”){
这是一个;
...
}
}
this.conversa=conversa}style={{display:“block”,overflowY:“auto”,overflowX:“hidden”,position:“absolute”,…}>
...
在这个链接中有一个giphy,显示给出的错误。注意输入的顺序和出现的位置:。 谢谢大家!

注意:在函数verifyKeyPress中,发送消息需要做更多的工作,但我没有把它放进去,因为它非常广泛



我知道了,问题是这个函数(this.scrollDown)应该在另一个函数的回调中,我没有在这里显示,我很抱歉,有人很难帮助我,我没有什么经验,但无论如何,谢谢你。

我不清楚你想做什么。您是否希望程序在每次按enter键时“向下翻页”一个屏幕?或者你想进入整个页面的底部,输入

在第一种情况下,您必须为scrollTop使用“视图高度”*“pageNum”,以便在每次点击return时都可以移动视图full。这将是棘手的,因为它将很难让它的中心正好在顶部项目

在第二种情况下,我认为滚动高度需要设置为“页面高度”-“视图高度”。这些是“一般”值,不记得这些值的确切JS/CSS变量名,但应该很容易查找


如果您想澄清所需的行为是什么,我很乐意再深入一点

在调用此时是否添加了新消息。scrollDown()?Ry的可能副本,是的,在同一个函数中,verificKeyPress(e)Nixkuroi,我正在做la表示,但由于某些原因,我的不正确想象一个聊天室,一个信使,每次我发送或接收信息时,滚动条都应该是belowYes,这是一个复杂的系统。我想到的一件事是,在您的方法中,我认为是添加新值的命令,这将影响视图的viewHeight/scrollHeight,但您甚至在添加新项目之前就设置了滚动,因此添加新项目可能会重置滚动,并且需要重新滚动。不确定还有什么要补充的,我以前也编写过类似的代码,它们非常复杂,通常很难“调整”。。。但一旦开始工作,他们就会动摇。