我有一个JSFiddle来看看here
我已经能够创建自动扩展和缩小textarea,因此当用户键入时,它将自动扩展并在用户删除文本时减少。问题是文本反弹并出现滚动条。我不确定为什么文字在我打字时弹跳,我无法弄清楚如何删除滚动条。
当我删除
while($(this).outerHeight() > this.scrollHeight - parseFloat($(this).css("borderTopWidth")) - parseFloat($(this).css("borderBottomWidth"))) {
$(this).height($(this).height()-1);
};
然后弹跳的文字就消失了。
我是否也用我的JS代码杀死了一匹死马?有更简单的方法吗?我觉得我是。
第一次输入时,textarea会将</body>
和</html>
插入到textarea中。这在我的服务器中不会发生,但仅在JSFiddle上发生。
有关停止弹回文本和删除滚动条的任何帮助吗?
SOVLED:
我终于能够通过更改函数中的.keyup
到.keydown
来解决我的问题,并删除了- parseFloat($(this).css("borderTopWidth")) - parseFloat($(this).css("borderBottomWidth"))
弹跳文本和滚动条问题。这是JSFiddle示例中的代码
.keydown(function(e) {
while($(this).outerHeight() < this.scrollHeight) {
$(this).height($(this).height()+1);
};
while($(this).outerHeight() > this.scrollHeight) {
$(this).height($(this).height()-1);
};
});