6 392
edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 63: | Linha 63: | ||
document.addEventListener('keydown', function (event) { | document.addEventListener('keydown', function (event) { | ||
if (dropdown.style.display === 'none' || !dropdown.childNodes.length) { | if (dropdown.style.display === 'none' || !dropdown.childNodes.length) { | ||
return; // Sai da função se o dropdown estiver escondido ou vazio | return; // Sai da função se o dropdown estiver escondido ou vazio | ||
Linha 72: | Linha 71: | ||
if (event.key === 'ArrowDown') { | if (event.key === 'ArrowDown') { | ||
allItems.forEach(item => item.classList.remove('active')); // Remove 'active' | |||
allItems.forEach(item => item.classList.remove('active')); | |||
if (activeItem) { | if (activeItem) { | ||
const nextItem = activeItem.nextElementSibling || allItems[0]; | const nextItem = activeItem.nextElementSibling || allItems[0]; | ||
nextItem.classList.add('active'); | nextItem.classList.add('active'); | ||
nextItem.scrollIntoView({ block: "nearest" }); | nextItem.scrollIntoView({ block: "nearest" }); | ||
} else { | } else { | ||
allItems[0].classList.add('active'); | allItems[0].classList.add('active'); | ||
allItems[0].scrollIntoView({ block: "nearest" }); | allItems[0].scrollIntoView({ block: "nearest" }); | ||
} | } | ||
event.preventDefault(); | event.preventDefault(); | ||
} else if (event.key === 'ArrowUp') { | } else if (event.key === 'ArrowUp') { | ||
allItems.forEach(item => item.classList.remove('active')); // Remove 'active' | |||
allItems.forEach(item => item.classList.remove('active')); | |||
if (activeItem) { | if (activeItem) { | ||
const previousItem = activeItem.previousElementSibling || allItems[allItems.length - 1]; | const previousItem = activeItem.previousElementSibling || allItems[allItems.length - 1]; | ||
previousItem.classList.add('active'); | previousItem.classList.add('active'); | ||
previousItem.scrollIntoView({ block: "nearest" }); | previousItem.scrollIntoView({ block: "nearest" }); | ||
} else { | } else { | ||
allItems[allItems.length - 1].classList.add('active'); | allItems[allItems.length - 1].classList.add('active'); | ||
allItems[allItems.length - 1].scrollIntoView({ block: "nearest" }); | allItems[allItems.length - 1].scrollIntoView({ block: "nearest" }); | ||
} | } | ||
Linha 99: | Linha 96: | ||
} else if (event.key === 'Enter') { | } else if (event.key === 'Enter') { | ||
if (activeItem) { | if (activeItem) { | ||
activeItem.click(); | activeItem.click(); | ||
} | } | ||
event.preventDefault(); | event.preventDefault(); | ||
Linha 105: | Linha 102: | ||
}); | }); | ||
// Adicionar eventos ao passar o mouse | |||
dropdown.addEventListener('mouseover', function (event) { | |||
if (event.target.classList.contains('dropdown-item')) { | |||
const allItems = dropdown.querySelectorAll('.dropdown-item'); | |||
allItems.forEach(item => item.classList.remove('active')); // Remove 'active' | |||
event.target.classList.add('active'); // Adiciona 'active' ao item do mouse | |||
} | |||
}); | |||
// Adicionar evento ao tirar o mouse do dropdown | |||
dropdown.addEventListener('mouseout', function () { | |||
const allItems = dropdown.querySelectorAll('.dropdown-item'); | |||
allItems.forEach(item => item.classList.remove('active')); // Remove 'active' | |||
}); | |||