6 392
edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 68: | Linha 68: | ||
if (event.key === 'ArrowDown') { | if (event.key === 'ArrowDown') { | ||
usingKeyboard = true; // Ativa a flag de interação por teclado | usingKeyboard = true; // Ativa a flag de interação por teclado | ||
allItems.forEach(item => item.classList.remove('active')); // Remove | allItems.forEach(item => item.classList.remove('active')); // Remove todas as seleções | ||
if (activeItem) { | if (activeItem) { | ||
Linha 81: | Linha 81: | ||
} else if (event.key === 'ArrowUp') { | } else if (event.key === 'ArrowUp') { | ||
usingKeyboard = true; // Ativa a flag de interação por teclado | usingKeyboard = true; // Ativa a flag de interação por teclado | ||
allItems.forEach(item => item.classList.remove('active')); // Remove | allItems.forEach(item => item.classList.remove('active')); // Remove todas as seleções | ||
if (activeItem) { | if (activeItem) { | ||
Linha 105: | Linha 105: | ||
if (event.target.classList.contains('dropdown-item')) { | if (event.target.classList.contains('dropdown-item')) { | ||
const allItems = dropdown.querySelectorAll('.dropdown-item'); | const allItems = dropdown.querySelectorAll('.dropdown-item'); | ||
allItems.forEach(item => item.classList.remove('active')); // Remove | allItems.forEach(item => item.classList.remove('active')); // Remove todas as seleções | ||
event.target.classList.add('active'); // Adiciona 'active' ao item do mouse | event.target.classList.add('active'); // Adiciona 'active' ao item do mouse | ||
} | } | ||
}); | }); | ||
dropdown.addEventListener('mouseout', function () { | dropdown.addEventListener('mouseout', function (event) { | ||
if (usingKeyboard) return; // Ignora eventos de mouse enquanto o teclado está em uso | if (usingKeyboard) return; // Ignora eventos de mouse enquanto o teclado está em uso | ||
if (event.target.classList.contains('dropdown-item')) { | |||
event.target.classList.remove('active'); // Remove a seleção do item do mouse | |||
} | |||
}); | }); | ||
Linha 119: | Linha 121: | ||
usingKeyboard = false; // Reseta a flag ao clicar | usingKeyboard = false; // Reseta a flag ao clicar | ||
const allItems = dropdown.querySelectorAll('.dropdown-item'); | const allItems = dropdown.querySelectorAll('.dropdown-item'); | ||
allItems.forEach(item => item.classList.remove('active')); // Remove | allItems.forEach(item => item.classList.remove('active')); // Remove todas as seleções | ||
}); | }); | ||