ajax - Javascript自动扩展框在文本周围弹跳

时间:2014-09-30 19:16:21

标签: javascript jquery ajax

我有一个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);
    };
});

0 个答案:

没有答案