Firefox TextArea не прокручивается без полос прокрутки - PullRequest
0 голосов
/ 05 октября 2011

Я использую теги TextArea в своем веб-проекте, которые никогда не будут показывать полосы прокрутки.Этого легко добиться, используя

TEXTAREA { overflow: hidden }

. Все нужные мне браузеры (IE, FF, Chrome) скрывают полосы прокрутки, как и предполагалось.

Однако Internet Explorer и Chrome будут прокручиваться до текущегоположение курсора в любом случае, в то время как Firefox больше не прокручивает.Вы можете переместить курсор в невидимую область и ввести текст, но вы не увидите, что вы делаете.

Можно ли это решить?

С уважением, Штеффен

РЕДАКТИРОВАТЬ: Поскольку я не нашел источник проблемы, и я действительно хотел бы решить эту проблему, я оставляю этот вопрос открытым.Однако я нашел очень плохой обходной путь: теперь мы используем overflow: scroll для этого TEXTAREA, помещаем его в DIV, измеряем ширину и высоту горизонтальной и вертикальной полос прокрутки, увеличиваем на TEXTAREAзначения и установите overflow:hidden на DIV, эффективно срезая полосы прокрутки.Они становятся невидимыми для пользователя, но Firefox по-прежнему прокручивается.Не хорошо, но работает.

1 Ответ

1 голос
/ 06 октября 2011

Насколько я могу судить, Firefox ведет себя так, как я ожидал, учитывая семантику, стоящую за overflow:hidden.

Тем не менее, прочитав ваши комментарии выше, вы можете довольно легко имитировать поведение, которое выхочу с небольшим количеством jQuery.

Вот код, который я написал:

$('textarea').bind("focus keyup", function(){
    var $current = $(this);
    $current.scrollTop(
        $current[0].scrollHeight - $current.height()
    );
});

Это будет в основном прокручивать текстовую область вниз, когда вы будете фокусироваться на ней и во время ввода.Может потребоваться настройка для учета изменений, которые будут внесены в содержание.

Вот Рабочая демонстрация

...