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

时间:2019-01-30 22:40:49

标签: css reactjs

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

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

更具体:

我有一个聊天窗口。聊天包含文本和图像消息。 聊天div设置为overflow-y: auto,在div的底部,我还有另一个div,其中存放着ref={scrollToBottomRef}

然后我有useEffect钩子:

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

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

我该如何解决?

2 个答案:

答案 0 :(得分:1)

@Scrimothy指出,这是Element.scrollHeight的目的。它几乎可以在所有浏览器上正常运行。它包括填充,但不包括边框或边距。如果内容未填充整个div,则会返回div的高度。

答案 1 :(得分:0)

我只是在useEffect中更改了call.enqueue(new Callback<User>() { @Override public void onResponse(Call<User> call, Response<User> response) { // todo deal with returned data (user) } @Override public void onFailure(Call<User> call, Throwable t) { // todo deal with the failed network request } }); 。如果没有call.enqueue( (Call<User> call, Response<User> response) -> { // todo deal with returned data (user) }, (Call<User> call, Throwable t) -> { // todo deal with the failed network request });

,它可以正常工作
scrollIntoView