如何在调整textarea大小后防止窗口自动滚动?

时间:2014-10-17 22:25:33

标签: javascript events scroll usability

我正在做一个表单来编辑存储在数据库中的文章。文章正文在textarea标签中编辑。所有表单都不适合窗口,因此浏览器会创建滚动条。但是textarea也有一个限制,当文本太大时,浏览器会创建第二个滚动条。

为了提高可用性,我做了一个简单的代码,在编辑文本时调整textarea的大小,因此文本始终可见,并且没有第二个滚动条(是的,我不喜欢写入堆栈溢出还有两个滚动条!)。

// This line is between some tasks of textEditUpdate function:
elemTextArea.style.height = Math.max(elemTextArea.scrollHeight, 200)+'px';
// This automatizes the process:
elemTextArea.addEventListener("input", textEditUpdate, false);

问题是当textarea调整大小时,窗口会自动滚动,直到光标位于页面底部。用户失去了他工作的地方(运动突然),也没有看到光标下方的文字 - 这非常烦人!

我对这个问题的最佳方法存有疑问,不知道是否有办法阻止此事件,或者我必须跟踪滚动位置并更正它一直......你怎么想?

编辑:A Playable Test请小窗口以改善效果,并注意它不会一直发生 - 突然滚动!

0 个答案:

没有答案