6 392
edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 55: | Linha 55: | ||
} | } | ||
}); | }); | ||
let usingKeyboard = false; // Flag para controlar interações via teclado | |||
document.addEventListener('keydown', function (event) { | document.addEventListener('keydown', function (event) { | ||
Linha 65: | Linha 67: | ||
if (event.key === 'ArrowDown') { | if (event.key === 'ArrowDown') { | ||
usingKeyboard = true; // Ativa a flag de interação por teclado | |||
allItems.forEach(item => item.classList.remove('active')); // Remove 'active' | allItems.forEach(item => item.classList.remove('active')); // Remove 'active' | ||
Linha 77: | Linha 80: | ||
event.preventDefault(); | event.preventDefault(); | ||
} else if (event.key === 'ArrowUp') { | } else if (event.key === 'ArrowUp') { | ||
usingKeyboard = true; // Ativa a flag de interação por teclado | |||
allItems.forEach(item => item.classList.remove('active')); // Remove 'active' | allItems.forEach(item => item.classList.remove('active')); // Remove 'active' | ||
Linha 94: | Linha 98: | ||
event.preventDefault(); | event.preventDefault(); | ||
} | } | ||
}); | }); | ||
dropdown.addEventListener('mouseover', function (event) { | dropdown.addEventListener('mouseover', function (event) { | ||
if (usingKeyboard) return; // Ignora eventos de mouse enquanto o teclado está em uso | |||
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'); | ||
Linha 108: | Linha 111: | ||
dropdown.addEventListener('mouseout', function () { | dropdown.addEventListener('mouseout', function () { | ||
if (usingKeyboard) return; // Ignora eventos de mouse enquanto o teclado está em uso | |||
const allItems = dropdown.querySelectorAll('.dropdown-item'); | const allItems = dropdown.querySelectorAll('.dropdown-item'); | ||
allItems.forEach(item => item.classList.remove('active')); // Remove 'active' | allItems.forEach(item => item.classList.remove('active')); // Remove 'active' | ||
}); | }); | ||
dropdown.addEventListener('click', function () { | dropdown.addEventListener('click', function () { | ||
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 'active' | allItems.forEach(item => item.classList.remove('active')); // Remove 'active' |