Próbuję utworzyć stronę internetową z tabelą elementów, które użytkownik może wybrać. Liczba elementów może być tak mała, jak pojedynczy element, ale także może wzrosnąć nawet do około 120. Nie chcę, aby tabela rozciągała stronę, więc wkładam ją do własnego znacznika <div>
o określonej wysokości i pionowy pasek przewijania. A Przykład goły:Jak programowo przewinąć element 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>
W tym przykładzie tabela jest w strefie pionie przewijanie i aktywny element jest ostatni w tabeli. Jak na razie dobrze.
Moje pytanie brzmi: Podczas aktualizacji tej tabeli, w jaki sposób ustawić ją tak, aby automatycznie przewijała do końca? Np. Kiedy strona jest tworzona, powinna automatycznie wybrać element # 9; UI powinien już podświetlić tę pozycję na liście, a to oznacza automatyczne ustawienie paska przewijania do końca.
Nie widzę sposobu, aby to zrobić ze znacznikiem <div>
(choć być może czegoś mi brakuje). Czy muszę używać znacznika w jaki sposób? Sądzę, że jeśli każda linia tabeli ma znacznik zakotwiczenia, wówczas pozycja przewijania może być ustawiona w ten sposób. Nie jestem do końca pewien, jak to zrobić, więc pomyślałem, że zapytam.
Wiem, że są prawdopodobnie wtyczki tabeli danych mogę to zrobić (wcześniej korzystałem z YUI i nigdy nie odkryłem, czy to rozwiąże ten konkretny problem). Wydaje się to jednak na tyle proste, że nie uważam, że powinienem zaimportować dowolną wtyczkę, która mogłaby być z łatwością wykorzystana jako cały arkusz kalkulacyjny w przeglądarce.
Dziękuję za to wszystko. Twój przykład działa pięknie. Daje mi to również dobrą strategię aktualizacji zaznaczonej komórki. Niestety, nie mogę pobrać scrollTop do "wziąć" w moim kodzie. I console.log() divEl.scrollTop zarówno przed po ustawieniu go i wartość pozostaje 0. Czy jest coś, co muszę zrobić, aby dokonać zapisu własności? –
Musi być coś jeszcze, co się tutaj dzieje, ponieważ gdy ręcznie dostosuję pionowy pasek przewijania, scrollTop nadal pozostaje 0. –
Odkryłem trochę inne rozwiązanie, które robi właściwe rzeczy, których potrzebuję: "selectedTrEl.scrollIntoView (false);" . Dzięki za wskazanie mi właściwego kierunku. –