How do I stop a textarea from scrolling to the top whenever I change its value

妖精的绣舞 提交于 2019-12-05 08:15:08

I ran into this problem, too. It happens in IE and Firefox but not Opera and Chrome.

I thought of hiding the momentary jumps to the top by "double-buffering" changes to the textarea:

  1. Create two textareas with the exact same properties and dimensions. Only one of these is visible; the other one is hidden.
  2. Append text to the hidden textarea: set [the value of the hidden textarea] to [the value of the visible textarea] + [text to append]. (The textarea will automatically scroll to the top, but this textarea is hidden!)
  3. Scroll the hidden textarea to the bottom: set scrollTop to a high integer value like (-1 >>> 1).
  4. Swap the hidden textarea with the visible one. Now the new text is shown, sans jumping to top!

You can swap the hidden/visible textareas by using one of two methods:

  1. Use absolute positioning to place the textareas on top of each other in conjunction with toggling their visible property.
  2. Swap the actual DOM elements. I'm not sure if this will introduce a new type of "flicker." You may have to create a div to contain the visible textarea so the layout of the page doesn't keep changing...

i thing that is problem of adding the content via the script, paste your code which append text to your textarea

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!