Po pierwsze, chciałbym użyć tylko natywnego JavaScript, aby wykonać to zadanie.Jak symulować aktywację za pomocą skryptów JavaScript przy keydown?
Załóżmy, że mam utworzyć niestandardowe menu rozwijane, a kod HTML wygląda mniej więcej tak.
<div class="dropdown">
<span class="dropdown-label" style="display:block">Select a thing</span>
<ul class="dropdownItemContainer">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
</ul>
</div>
W pliku CSS Mam coś podobnego do tego:
ul.dropdownItemContainer li:hover {
background-color: #FF0000;
}
Tak, tam naprawdę nie dropdownish zachowanie, ale to nie o to chodzi dyskusji rzeczywiście. Problem polega na tym, że nie mogłem wymyślić przyzwoitego sposobu włączenia kontroli klawiatury dla tego menu. Pożądany wynik jest następujący: naciskam klawisz w dół, a pierwsza opcja jest podświetlona; Ponownie go wciskam, a druga opcja jest podświetlona i tak dalej.
Jedyną opcją, którą widzę w tym momencie (właśnie zaczęłam studiować JS) jest pobranie wszystkich dzieci ul
, wstawienie do tablicy i przypisanie znaczników koloru tła za pomocą metod JS w odpowiedni sposób po naciśnięciu klawisza w dół.
Z drugiej strony nadal mam zachowanie: hover opisane w CSS dla countrol myszy. Czy istnieje inteligentny sposób symulowania zawieszania?
Keyboard nawigacji sprawia, że ciężkie użycia 'koncentrująca '. –
@AlessandroVendruscolo prawda, ale nie mogę skupić się na niczym innym niż na lub zwykłych elementach kontrolnych, czy mogę? :) –
tylko rozwiązania jQuery przychodzą mi na myśl :( –