【发布时间】:2016-12-22 17:39:02
【问题描述】:
我正在尝试设计一个根据内容调整自身大小的文本区域。这是我写的-
HTML
<div class='container'>
<textarea data-autoresize='true'></textarea>
</div>
JavaScript
$('body').on('keyup input','textarea', function(){
var offset = this.offsetHeight - this.clientHeight;
$(this).css('height','auto').css('height', this.scrollHeight + offset);
}).removeAttr('data-autoresize');
CSS
textarea {
overflow: hidden;
width: 150px;
height: 150px;
}
但是,当文本区域变大并且容器变为可滚动时,这会导致容器元素滚动到每个字符输入的文本区域顶部。有什么办法可以阻止这个滚动?
编辑
你可以参考这个小提琴 - https://jsfiddle.net/07d6gsb1/
【问题讨论】:
-
你能分享一下你的 HTML 结构吗?编辑:谢谢!
-
为什么要设置两次高度?
-
@moopet 因为否则偏移量会被添加,即使删除字符也会增加高度,他基本上会重置输入时的高度。
-
我似乎无法重现此问题,您使用的是什么浏览器? codepen.io/robertspier/pen/GNLmoY
-
这很奇怪,你的问题在我的 codepen 中仍然存在吗?
标签: javascript jquery html css