У меня есть следующий шаблон HTML, в котором элементы списка динамически добавляются в раскрывающийся список.Как имитировать наведение с событиями клавиатуры
<button class="btn btn-default btn-sm dropdown" (keydown)="triggerTraverse($event)"></button>
<fa-list-filler>
<li *ngFor="let item of items [class.active]="checkItem(item,selectedItem)">
<span (click)="doNavigate()" class="cookie"></span>
</li>
</fa-list-filler>
У меня есть следующий стиль парения для элементов списка:
li > .cookie {
cursor: pointer;
&:hover{
background-color: 'yellow';
}
}
Когда я парить эти элементы списка с моей мыши, я могу видеть стиль парения, приложенный к элементу списка т.е. я могу в этом случае цвет желтого цвета.
По умолчанию выбран первый элемент, то есть он активен в классе. Затем, когда пользователь нажимает клавишу со стрелкой вниз, активный класс остается в одном и том же месте, но состояние зависания должно перемещаться вниз до следующего элемента списка, а затем на следующий элемент и обтекать.
Я реализовал следующий метод, но я не могу продолжить работу с последующими элементами.
triggerTraverse(evt: KeyboardEvent){
if(evt.keyCode === 27){
closeDropdown();
}else if(evt.keyCode === 40){
let initialEle = document.querySelector('li.active');
initialEle.nextElementSibling.firstElementChild.classList.add('hoverstyle');
}
}
hoverstyle - это еще один класс, который я только что применил для добавления фона к элементу.
.hoverstyle{
background-color: 'pink';
}
может кто угодно помочь.
вы видите класс 'hoverstyle' добавлен в' Li 'в элементе проверки? – Searching
есть. Но это происходит только для второго элемента только потому, что я больше ничего не делаю, чтобы пройти через весь список. – zelda
Кул, ответьте на это, если логика говорит, что начните с 'li.active' (ur 1-го элемента), а затем опуститесь вниз, действительно ли она выйдет за второй элемент? – Searching