每当我更改其值时,如何阻止textarea滚动到顶部

时间:2010-07-08 10:49:43

标签: javascript firefox textarea

我正在制作一个textarea附加越来越多文字的东西。在firefox中,textarea每次都会向上滚动到顶部。 我目前有类似textarea.scrollTop=1000000;的内容,每次更改时都会将其向下滚动,但它仍会在很短的时间内上升到顶部。 有没有办法阻止它这样做?

2 个答案:

答案 0 :(得分:2)

我也遇到了这个问题。它发生在IE和Firefox中,但不是Opera和Chrome。

我想通过对“textarea”进行“double-buffering”更改来隐藏瞬间跳转到顶部:

  1. 使用完全相同的属性和尺寸创建两个textareas。其中只有一个是可见的;另一个是隐藏的。
  2. 将文本附加到隐藏的textarea:将[隐藏文本区域的值]设置为[可见textarea的值] + [要追加的文本]。 (textarea会自动滚动到顶部,但这个textarea是隐藏的!)
  3. 将隐藏的textarea滚动到底部:将scrollTop设置为高整数值,如(-1>>> 1)。
  4. 将隐藏的textarea与可见的textarea交换。现在显示新文本,sans跳到顶部!
  5. 您可以使用以下两种方法之一交换隐藏/可见的textareas:

    1. 使用绝对定位将textareas与toggling their visible property一起放在彼此的顶部。
    2. 交换实际的DOM元素。我不确定这是否会引入一种新型的“闪烁”。您可能必须创建一个div来包含可见的textarea,这样页面的布局就不会改变......

答案 1 :(得分:0)

我的问题是通过脚本添加内容的问题,粘贴将文本附加到textarea的代码