JS Component
Dropdown Y2Drp
Menu flutuante com posicionamento automático, ícones, divisores, checkmark e grupos - fecha com ESC ou clique externo.
1. Demo ao Vivo
2. Grupos com Título
3. Itens com Checkmark
// Gerenciar checkmark manualmente
document.querySelectorAll('[data-chk]').forEach(item => {
item.addEventListener('click', e => {
e.preventDefault();
// Remove checkmark de todos os irmãos
item.closest('.y2drop-mn').querySelectorAll('.y2drop-it')
.forEach(i => i.classList.remove('is-chk'));
// Marca o clicado
item.classList.add('is-chk');
});
});
6. Itens Desabilitados
7. API JavaScript
const drp = document.querySelector('[y2drop]');
// Abrir / fechar programaticamente
Y2Drp.open(drp);
Y2Drp.close(drp);
// Eventos
drp.addEventListener('yd:y2drop:open', () => console.log('Aberto'));
drp.addEventListener('yd:y2drop:close', () => console.log('Fechado'));
Quick Reference
| Atributo / Classe | Elemento | Descrição |
|---|---|---|
y2drop |
div | Ativa Y2Drp no container |
.y2drop-tgl |
button | Trigger que abre/fecha o menu |
.y2drop-mn |
div | Container do menu flutuante |
.y2drop-mn.is-rgt |
div | Alinha menu à direita do trigger |
.y2drop-mn.is-top |
div | Abre menu acima do trigger |
.y2drop-it |
a / button | Item de menu |
.y2drop-it.is-err |
.y2drop-it | Item destrutivo - cor de erro |
.y2drop-it.is-chk |
.y2drop-it | Item com checkmark ativo |
.y2drop-it.is-dis |
.y2drop-it | Item desabilitado |
.y2drop-sub |
div | Container de submenu - abre ao hover |
.y2drop-sep |
hr | Linha divisória entre grupos |
.y2drop-ttl |
span | Título de grupo no menu |
yd:y2drop:open / yd:y2drop:close |
evento | Eventos disparados ao abrir/fechar |