html - Angular 9 - 当用户输入内容时扩展文本框的高度,并在点击它时恢复正常大小
问题描述
我有以下要求,其中输入字段的高度应该调整以显示用户输入的任何内容,然后一旦他点击它就会恢复到正常大小。像这样的东西-
当用户输入请求时,它必须展开(第二个请求条目),当他单击框外时,它必须恢复正常(第一个请求条目)。当您输入任何标题或查询参数时,类似于“POSTMAN”应用程序的行为。
解决方案
从这个答案
你可以有一个变量'heigth'和一个接收textArea的函数:
heigth = "1.125rem";
changeHeigth(textArea) {
this.heigth = null;
setTimeout(() => {
this.heigth = textArea.scrollHeight + "px";
});
}
要“自动调整大小”,首先需要将高度设置为 null,然后在下一步中等于 scrollHeigth。这就是使用 setTimeout 的原因
所以,你控制(焦点)(模糊)和(输入)的高度
<textarea #textArea [style.height]="heigth"
(input)="changeHeigth(textArea)"
(focus)="heigth=textArea.scrollHeight+'px'"
(blur)="heigth='1.125rem'"></textarea>
查看stackblitz中的一个简单示例
推荐阅读
- reactjs - 如何在 React 中加载和播放 Youtube 视频
- ruby-on-rails - 如何修复 rqrcode gem 的“未定义方法 `as_png'”
- java - 使用 Jsoup 进行网页抓取,无法获取搜索结果
- c - 通过C中的函数将值分配给整数数组
- swift - 组合等效的 RxJS iif
- python - 使用apply检查熊猫系列中的每一行是否包含列表中的字符串?
- ios - 如何在 SwiftUI 中使用 Toast-Swift?
- mobile - 在 CSS 中设置的背景图像在 Edge 移动设备中不工作,但在 Chrome 中工作
- java - 如何匹配java中的双引号?
- c - 我需要帮助了解如何为以下等式生成 SHA-256 函数的输入?(方程式和 C 代码在正文中)