首页 > 解决方案 > 如何在 JavaScript 中始终保持向下滚动?

问题描述

我有一个 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>

在此链接中是一个显示错误的 giphy。注意输入的序列和出现的位置:https ://media.giphy.com/media/LUeVZl33p6WlQrVmq9/giphy.gif 。谢谢!

注意:在函数 verifyKeyPress 中发送消息还有更多工作要做,但我没有放它,因为它很广泛


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

标签: javascriptscroll

解决方案


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

在第一种情况下,您必须对 scrollTop 使用 "view height" * "pageNum" 以允许每次点击返回时移动一个完整的视图。这会很棘手,因为很难让它正好位于顶部项目的中心。

在第二种情况下,我相信滚动高度需要设置为“页面高度”-“视图高度”。这些是“通用”值,不记得这些临时的精确 JS/CSS var 名称,但应该很容易查找

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


推荐阅读