29 lines
853 B
JavaScript
29 lines
853 B
JavaScript
document.addEventListener('DOMContentLoaded', () => {
|
|
const profileTrigger = document.querySelector('.profile-trigger');
|
|
const profileMenu = document.querySelector('.profile-menu');
|
|
|
|
if (!profileTrigger || !profileMenu) return;
|
|
|
|
// Toggle on click
|
|
profileTrigger.addEventListener('click', (e) => {
|
|
e.stopPropagation();
|
|
profileMenu.classList.toggle('active');
|
|
});
|
|
|
|
// Close on outside click
|
|
document.addEventListener('click', () => {
|
|
profileMenu.classList.remove('active');
|
|
});
|
|
|
|
// Prevent closing when clicking inside menu
|
|
profileMenu.addEventListener('click', (e) => {
|
|
e.stopPropagation();
|
|
});
|
|
|
|
// Close on ESC
|
|
document.addEventListener('keydown', (e) => {
|
|
if (e.key === 'Escape') {
|
|
profileMenu.classList.remove('active');
|
|
}
|
|
});
|
|
}); |