当输入字段大小调整时,如何将可滚动的聊天 Div 保持在底部?
当外部 Div 更改大小时,可滚动 Div 粘在底部
概述
在聊天应用程序中,通常有一个可滚动消息容器,该容器占用大部分屏幕。但是,当输入字段的高度动态增加时,用户的滚动位置可能会受到干扰。
问题
当输入字段增长时,它会有效地增加外部 div 的高度,这会导致将消息容器向下推。这会导致用户看不到最近的消息。
基于 React 的解决方案
一种方法是使用 React 的 componentDidUpdate 生命周期方法来计算输入字段的高度,并在其发生变化时通知消息容器。但是,这可能会导致性能问题和过多的消息传递。
使用 Flexbox 的 CSS 解决方案
更有效的解决方案涉及使用 CSS Flexbox:
.chat-window { display: flex; flex-direction: column; height: 100%; } .chat-messages { flex: 1; height: 100%; overflow: auto; display: flex; flex-direction: column-reverse; } .chat-input { border-top: 1px solid #999; padding: 20px 5px; }
登录后复制
- 弯曲方向:列反向;将消息放置在容器的底部。
- 这可以确保即使输入字段增大,消息仍保留在视图中。
注意事项
- IE/Edge/Firefox 错误: 这些浏览器存在一个错误,即使用 flex-direction 时滚动条可能会消失: column-reverse;.
- 解决方法:要解决此问题,请添加以下函数:
function updateScroll(el) { el.scrollTop = el.scrollHeight; } function scrollAtBottom(el) { return (el.scrollTop + 5 >= (el.scrollHeight - el.offsetHeight)); }
登录后复制
- 检查容器是否位于底部并在这些浏览器中调整输入字段大小时调整滚动条。
以上是当输入字段大小调整时,如何将可滚动的聊天 Div 保持在底部?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章
<🎜>:种植花园 - 完整的突变指南
4 周前
By DDD
<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
<🎜>掩盖:探险33-如何获得完美的色度催化剂
2 周前
By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move
