Как мне остановить прокрутку текстовой области вверх, когда я изменяю ее значение - PullRequest
5 голосов
/ 08 июля 2010

Я делаю что-то, где текстовая область получает все больше и больше текста.В Firefox текстовая область прокручивается обратно вверх каждый раз.В настоящее время у меня есть что-то вроде textarea.scrollTop=1000000;, чтобы прокручивать его обратно каждый раз, когда оно меняется, но оно все еще очень быстро поднимается наверх.Есть ли способ остановить это?

Ответы [ 2 ]

2 голосов
/ 21 июля 2010

Я тоже столкнулся с этой проблемой. Это происходит в IE и Firefox, но не в Opera и Chrome.

Я думал о том, чтобы скрыть кратковременные прыжки на вершину путем « двойной буферизации » изменений в текстовой области:

  1. Создайте две текстовые области с одинаковыми свойствами и размерами. Только один из них виден; другой скрыт.
  2. Добавить текст к скрытой текстовой области: установите [значение скрытой текстовой области] в [значение видимой текстовой области] + [текст для добавления]. (Текстовая область будет автоматически прокручиваться вверх, но эта текстовая область скрыта!)
  3. Прокрутите скрытую текстовую область вниз: установите для scrollTop высокое целочисленное значение, например (-1 >>> 1).
  4. Поменяйте местами скрытую текстовую область с видимой. Теперь отображается новый текст, без прыжков наверх!

Вы можете поменять местами скрытые / видимые текстовые области одним из двух способов:

  1. Используйте абсолютное позиционирование для размещения текстовых областей друг над другом в сочетании с , переключая их видимое свойство .
  2. Поменяйте местами фактические элементы DOM. Я не уверен, введет ли это новый тип «мерцания». Возможно, вам придется создать div для отображения видимой текстовой области, чтобы макет страницы не менялся ...
0 голосов
/ 08 июля 2010

Я считаю, что проблема заключается в добавлении контента через скрипт, вставьте свой код, который добавляет текст в текстовую область

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...