How can I set the focus to the Previous/Next element in the list item when pressing Up Arrow/Down Arrow keys in svelte?
I wanted to change the focus to next list item when pressing down arrow key and also change the focus to previous list item when pressing up arrow key from the keyboard, I have started working upon some code but it's still not working properly, so it would be great if someone could help me, thanks in advance
Code:-
<script>
let keyCode;
let item;
function handleKeydown() {
item = document.getElementsByClassName('item');
let itemLength = item.length;
keyCode = event.keyCode;
switch(keyCode){
//ArrowUp
case 38:
//when clicking up arrow focus should move upwards li elements
break;
//ArrowDown
case 40:
//when clicking down arrow focus should move downwards li elements
break;
}
}
</script>
<style>
.item:focus{
border: 1px solid #000000;
}
</style>
<svelte:window on:keydown={handleKeydown} />
<ul>
<li class="item" tabindex="0" >
<p>List Item 1</p>
</li>
<li class="item" tabindex="0" >
<p>List Item 2</p>
</li>
<li class="item" tabindex="0" >
<p>List Item 3</p>
</li>
</ul>