【问题标题】:Rezising a textarea when typing键入时调整文本区域的大小
【发布时间】:2012-08-21 08:04:18
【问题描述】:

我正在尝试在键入时调整 textarea 的大小,以调整 textarea 的高度和里面的文本的高度。我使用以下 javascript 代码执行此操作:

function textAreaAdjust(o) 
{
  o.style.height = "1px";
  o.style.height = (o.clientHeight)+"px";  
}

并在我的 textarea 上尝试了 onkeydown 事件:

<form:form modelAttribute="article" action="articleeditsubmit">
    <input type="submit" value="Editer" />
    <form:input path="title" /> ¨<br/>
    <form:textarea path="content"  onkeydown = "textAreaAdjust(content)"  style="width:100%;overflow:hidden"  />
    <form:hidden path="id" /><br/>                  
</form:form>

此代码在 Chrome 浏览器上运行良好,但在 Firefox 上,当输入超过屏幕高度的长文本时,浏览器的滚动条出现并将焦点强制到页面顶部,然后快速返回到末尾页。这给用户带来了非常糟糕的闪烁效果,我正在寻找解决它。

【问题讨论】:

    标签: javascript resize textarea


    【解决方案1】:

    为什么要先设置高度为 1px? 由于文本框的高度缩小,Firefox 似乎会跳到屏幕顶部,然后在您设置正确的高度时跳回。

    【讨论】:

    • 因为我需要在给定新的高度大小之前重新初始化我的文本区域的大小,如果不是,高度将从最后一个大小增加,如果你删除文本并不总是好的。
    猜你喜欢
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多