如何在调整大小时更改滚动元素行为? (HTML,CSS,JavaScript)

前端之家收集整理的这篇文章主要介绍了如何在调整大小时更改滚动元素行为? (HTML,CSS,JavaScript)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Scrollable div to stick to bottom,when outer div changes in size5个
目前,如果我的网页上的滚动div垂直缩小,则内容保持固定在div的顶部,并且之前位于div底部内容将被隐藏.

我希望这在相反的方向上工作:当div调整大小时,内容保持固定到底部边框,先前在顶部的内容折叠.

可以把它想象成手机上的典型信使应用程序.当您输入文本并且输入框的大小增加时,它会使显示先前消息的区域变小,但是当发生这种情况时,内容将固定为底部边框.

如何在HTML / CSS / JavaScript中实现此目的?

解决方法

这可以使用CSS完成,正如我在 this answer中所展示的那样.

这是实现它的代码部分.

html,body { height:100%; margin:0; padding:0; }

.chat-window{
  display:flex;
  flex-direction:column;
  height:100%;
}
.chat-messages{
  flex: 1;
  height:100%;
  overflow: auto;
  display: flex;
  flex-direction: column-reverse;
}

/* begin - fix for hidden scrollbar in IE/Edge/Firefox */
.chat-messages-text{ overflow: auto; }
@media screen and (-webkit-min-device-pixel-ratio:0) {
  .chat-messages-text{ overflow: visible; }
  /*  reset Edge as it identifies itself as webkit  */
  @supports (-ms-accelerator:true) { .chat-messages-text{ overflow: auto; } }
}
<div class="chat-window">
  <div class="chat-messages">
    <div class="chat-messages-text" id="messages">
      Long long content 1!<br/>
      Long long content 2!<br/>
      Long long content 3!<br/>
      Long long content 4!<br/>
      Long long content 5!<br/>
      Long long content 1!<br/>
      Long long content 2!<br/>
      Long long content 3!<br/>
      Long long content 4!<br/>
      Long long content 5!<br/>
      Long long content 1!<br/>
      Long long content 2!<br/>
      Long long content 3!<br/>
      Long long content 4!<br/>
      Long long content 5!<br/>
      Long long content 1!<br/>
      Long long content 2!<br/>
      Long long content 3!<br/>
      Long long content 4!<br/>
      Long long content 5!<br/>
      Long long content 1!<br/>
      Long long content 2!<br/>
      Long long content 3!<br/>
      Long long content 4!<br/>
      Long long content 5!<br/>
    </div>
  </div>
</div>

猜你在找的HTML相关文章