css - 有没有办法将div的高度设置为 `overflow-y: auto`

标签 css reactjs

我有一个 div 设置为 overflow-y: auto。我可以在没有 overflow-y: auto 的情况下检查 div 的高度及其内容吗?

我想保留 overflow-y: auto 并知道 div 的高度是多少,就像没有 overflow-y: auto

更具体:

我有一个聊天窗口。聊天包含文本和图像形式的消息。 聊天 div 设置为 overflow-y: auto 并且在 div 的底部我有另一个 div 包含 ref={ scrollToBottomRef}

然后我有 useEffect 钩子(Hook):

  useEffect(() => {
    scrollToBottomRef.current.scrollIntoView({
      behavior: 'smooth'
    });
  });

这很好用。加载消息后,我会向下滚动到底部。 当邮件包含图像时会出现此问题。然后我在渲染图像之前将滚动条向下滚动到底部,因此在一秒钟后滚动条从底部向上凸起。

我该如何解决这个问题?

最佳答案

这是 Element.scrollHeight 的目的,正如@Scrimothy 指出的那样。它几乎适用于所有浏览器,没有任何问题。它包括填充,但不包括边框或边距。如果内容没有填满整个 div,它返回 div 的高度。

关于css - 有没有办法将div的高度设置为 `overflow-y: auto`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54450647/

相关文章:

html - 如何实现像github.com这样的图标字体

reactjs - 如何为对象类型设置 React 默认 props

javascript - 如何更改 div 的不透明度?

javascript - 悬停动画后的效果

reactjs - 是否可以合并 redux 中创建的商店?

javascript - 在 React Web 应用程序中集成 firebase 时获取 'permission-denied'

reactjs - 观察者无法与 useLocalObservable 一起使用

ios - React-Native Fetch + 解析 JSON 在 iOS 模拟器中抓取,但在远程调试中即时进行

javascript - 在悬停状态下突出显示多个元素

javascript - 从右向左滑动打开抽屉