30 lines
915 B
JavaScript
30 lines
915 B
JavaScript
/*
|
|
Navbar JavaScript
|
|
========================================
|
|
*/
|
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
document.querySelectorAll('.dropdown').forEach(dropdown => {
|
|
const toggle = dropdown.querySelector('.dropdown-toggle');
|
|
const mode = dropdown.getAttribute('data-dropdown') || 'click';
|
|
|
|
if (mode === 'hover') {
|
|
dropdown.addEventListener('mouseenter', () => dropdown.classList.add('open'));
|
|
dropdown.addEventListener('mouseleave', () => dropdown.classList.remove('open'));
|
|
} else {
|
|
toggle.addEventListener('click', e => {
|
|
e.preventDefault();
|
|
dropdown.classList.toggle('open');
|
|
});
|
|
}
|
|
});
|
|
|
|
document.addEventListener('click', e => {
|
|
if (!e.target.closest('.dropdown-toggle')) {
|
|
document.querySelectorAll('.dropdown:not([data-dropdown="hover"])').forEach(dropdown => {
|
|
if (!dropdown.contains(e.target)) dropdown.classList.remove('open');
|
|
});
|
|
}
|
|
});
|
|
});
|