У меня есть набор функций Javascript, которые я использую с таблицей элементов ввода для включения навигации. Такие вещи, как отслеживание текущего в фокусе элемента и переполнение с конца одной строки на начало следующей. Я имею поддержку полосы прокрутки с фиксированным первым столбцом, создав одну таблицу шириной всего в один столбец с моим фиксированным столбцом и имея полосу прокрутки для другой таблицы.
Однако недавно я заметил, что поведение полосы прокрутки по умолчанию немного несовершенно. Когда я перехожу к последнему столбцу, Firefox оставляет этот столбец частично скрытым полосой прокрутки, а не прокручивается достаточно далеко, чтобы увидеть его. Аналогичным образом, после прокрутки, чтобы увидеть другую часть последнего столбца, когда я перехожу к следующей строке и код навигации устанавливает фокус на ячейку в первом столбце (замороженная таблица), Firefox не изменяется полоса прокрутки, чтобы я мог видеть весь первый столбец.
Из-за этого я изучал, как изменить положение полосы прокрутки, используя JavaScript. Моя таблица не использует вертикальную полосу прокрутки, только горизонтальную. Так что я наткнулся на scrollLeft.
document.getElementById("meastable").scrollLeft = 1; // reset scroll to leftmost
К сожалению, кажется, что это работает только время от времени. Когда я включил Firebug и проследил через мой код навигации, где находится эта строка, кажется, что она работает время от времени, но в большинстве случаев эта строка запускается, но свойство прокрутки таблиц влево остается неизменным, и я не вижу изменений визуально либо.
Я также установил scrollLeft на большое число, поэтому оно будет установлено на максимум, как описано в документации, и это также не работает (за исключением времени от времени).
Я использую следующий код для настройки полосы прокрутки в моей таблице.
<div style="overflow:auto">
<table id="meastable" border="1">
В соответствии с документацией Mozilla, похоже, что она возникла в IE, но теперь работает в Firefox. Разве это не работает в Firefox, поскольку внутренний проект, для которого он предназначен, будет только Firefox.
Так что я пытаюсь понять, что не так. Известно ли, что scrollLeft работает неправильно, или я должен вернуться и посмотреть, не испортил ли я что-то в своем определении полосы прокрутки или что-то в этом роде?