Widget:Test: mudanças entre as edições

276 bytes adicionados ,  27 de dezembro de 2024
sem sumário de edição
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();
     }
     }
    // Remove a seleção do mouse (se existente)
    dropdown.querySelectorAll('.dropdown-item').forEach(item => item.classList.remove('active'));
});
});


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'
});
});


// Resetar item ativo no clique
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'
6 392

edições