Prima di tutto, vorrei utilizzare solo JavaScript nativo per completare questa attività.Come si simula il passaggio del mouse con Javascript su keydown?
Diciamo che devo creare un menu a discesa personalizzato e il codice HTML è simile a questo.
<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>
Nel file CSS ho qualcosa vicino a questo:
ul.dropdownItemContainer li:hover {
background-color: #FF0000;
}
Sì, non c'è davvero nessun comportamento dropdownish, ma non è questo il punto di discussione in realtà. Il problema è che non riuscivo a pensare a un modo decente per abilitare il controllo da tastiera per questo menu a discesa. Il risultato desiderato è il seguente: premo il tasto giù, e la prima opzione è evidenziata; Lo premo di nuovo, e la seconda opzione è evidenziata e così via.
L'unica opzione che vedo a questo punto (appena iniziato a studiare JS) è di recuperare tutti i figli di ul
, incollarli in un array e assegnare i tag a un colore di sfondo tramite i metodi JS in modo corretto ogni volta che si preme il tasto giù.
D'altra parte, ho ancora il comportamento di hover descritto nel CSS per il countrol del mouse. C'è un modo intelligente di simulare alghe?
navigazione tastiera rende pesante uso di ': focus '. –
@AlessandroVendruscolo è vero, ma non riesco a concentrarmi su qualcosa di diverso da o su elementi di controllo regolari, posso? :) –
mi vengono in mente solo le soluzioni jQuery :( –