Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止窗口在调整文本区域大小后自动滚动?_Javascript_Events_Scroll_Usability - Fatal编程技术网

Javascript 如何防止窗口在调整文本区域大小后自动滚动?

Javascript 如何防止窗口在调整文本区域大小后自动滚动?,javascript,events,scroll,usability,Javascript,Events,Scroll,Usability,我正在做一个表单来编辑数据库中存储的文章。文章正文在textarea标记中编辑。“全部”窗体不适合该窗口,因此存在由浏览器创建的滚动条。但是文本区域也受到了限制,当文本太大时,浏览器会创建第二个滚动条 为了提高可用性,我编写了一个简单的代码,在编辑文本时调整文本区域的大小,因此文本始终可见,并且没有第二个滚动条是的,我也不喜欢使用两个滚动条在堆栈溢出中写入 // This line is between some tasks of textEditUpdate function: elemTex

我正在做一个表单来编辑数据库中存储的文章。文章正文在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);
问题是当文本区域调整大小时,窗口会自动滚动,直到光标位于页面底部。用户失去了工作点,移动很突然,也看不到光标下方的文本-这很烦人

我对解决这个问题的最佳方法表示怀疑,不知道是否有办法防止这一事件发生,否则我将不得不跟踪滚动位置并一直纠正它…你认为呢


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

我认为:创建plnkr。一个可玩的例子,你的问题。。。或者我在JSFIDLE中尝试过,不会起作用。但我会制作一个网页。你能描述一下重现问题的步骤吗?而且,你在玩弄事物的默认行为。相信我,如果自动扩展文本框是最好的可用性,那么编写规范的人就会要求它。