Я пытаюсь создать веб-страницу с таблицей элементов, которую пользователь может выбрать. Количество элементов может быть таким же маленьким, как и один элемент, но также увеличиваться до 120. Я не хочу, чтобы таблица растягивала страницу, поэтому я набиваю ее в свой собственный тег с определенной высотой и вертикальная полоса прокрутки. Голой кости Пример:Как программно прокручивать элемент HTML?
<div style="width:100px; height:100px; overflow-y:scroll; overflow-x:hidden;">
<table>
<tr><td>item 1</td></tr>
<tr><td>item 2</td></tr>
<tr><td>item 3</td></tr>
<tr><td>item 4</td></tr>
<tr><td>item 5</td></tr>
<tr><td>item 6</td></tr>
<tr><td>item 7</td></tr>
<tr><td>item 8</td></tr>
<tr style="color:#00aa00"><td>item 9</td></tr>
</table>
</div>
В этом примере таблица находится в вертикально-прокрутки области и активный элемент является последним в таблице. Все идет нормально.
Мой вопрос: При обновлении этой таблицы, как я могу установить ее так, чтобы она автоматически прокручивалась до конца? Например, когда страница создана, она должна автоматически выбирать элемент # 9; пользовательский интерфейс должен уже выделить этот элемент в списке, а это означает, что автоматически устанавливается полоса прокрутки до конца.
Я не вижу способа сделать это с помощью тега <div>
(хотя, возможно, мне что-то не хватает). Нужно ли использовать тег ? Я полагаю, что если каждая строка таблицы имеет якорный тег, тогда положение прокрутки может быть установлено таким образом. Я не совсем уверен, как это сделать, поэтому я решил спросить.
Я знаю, что есть, вероятно, плагины таблиц данных, которые я могу использовать для этого (раньше я использовал YUI, и я никогда не выяснял, сможет ли он решить эту конкретную проблему). Но это кажется достаточно простым, что я не чувствую, что мне нужно будет импортировать любой плагин, который можно было бы легко использовать в виде всей электронной таблицы в браузере.
Спасибо за все это. Ваш пример работает красиво. Это также дает мне хорошую стратегию для обновления выделенной ячейки. К сожалению, я не могу заставить scrollTop «взять» в моем коде. I console.log() divEl.scrollTop как до установки после него, так и значения остается 0. Есть ли что-то, что мне нужно сделать, чтобы сделать свойство доступным для записи? –
Здесь должно быть что-то еще, потому что, когда я вручную настраиваю вертикальную полосу прокрутки, scrollTop все равно остается 0. –
Я обнаружил немного другое решение, которое делает то, что мне нужно: «selectedTrEl.scrollIntoView (false);» , Спасибо, что указал мне в правильном направлении. –