22 - python & all web labs
This commit is contained in:
85
labWeb/lab8/script.js
Normal file
85
labWeb/lab8/script.js
Normal file
@@ -0,0 +1,85 @@
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const burgerBtn = document.getElementById('burger-btn');
|
||||
const mobileMenu = document.getElementById('mobile-menu');
|
||||
let isMenuOpen = false;
|
||||
|
||||
function toggleMenu() {
|
||||
isMenuOpen = !isMenuOpen;
|
||||
const icon = burgerBtn.querySelector('i');
|
||||
|
||||
if (isMenuOpen) {
|
||||
mobileMenu.classList.remove('hidden');
|
||||
mobileMenu.style.maxHeight = '400px';
|
||||
mobileMenu.style.opacity = '1';
|
||||
|
||||
if (icon) {
|
||||
icon.setAttribute('data-lucide', 'x');
|
||||
lucide.createIcons();
|
||||
}
|
||||
burgerBtn.setAttribute('aria-expanded', 'true');
|
||||
} else {
|
||||
mobileMenu.style.maxHeight = '0';
|
||||
mobileMenu.style.opacity = '0';
|
||||
setTimeout(() => {
|
||||
mobileMenu.classList.add('hidden');
|
||||
}, 300);
|
||||
|
||||
if (icon) {
|
||||
icon.setAttribute('data-lucide', 'menu');
|
||||
lucide.createIcons();
|
||||
}
|
||||
burgerBtn.setAttribute('aria-expanded', 'false');
|
||||
}
|
||||
}
|
||||
|
||||
if (burgerBtn && mobileMenu) {
|
||||
burgerBtn.addEventListener('click', function(e) {
|
||||
e.stopPropagation();
|
||||
toggleMenu();
|
||||
});
|
||||
|
||||
|
||||
const mobileLinks = mobileMenu.querySelectorAll('a');
|
||||
mobileLinks.forEach(link => {
|
||||
link.addEventListener('click', function() {
|
||||
toggleMenu();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
document.addEventListener('click', function(e) {
|
||||
if (isMenuOpen && !mobileMenu.contains(e.target) && !burgerBtn.contains(e.target)) {
|
||||
toggleMenu();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
window.addEventListener('resize', function() {
|
||||
if (window.innerWidth >= 768 && isMenuOpen) {
|
||||
toggleMenu();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
const header = document.querySelector('header');
|
||||
if (header) {
|
||||
window.addEventListener('scroll', function() {
|
||||
if (window.scrollY > 10) {
|
||||
header.classList.add('shadow-lg');
|
||||
header.classList.remove('shadow-md');
|
||||
} else {
|
||||
header.classList.add('shadow-md');
|
||||
header.classList.remove('shadow-lg');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
const dateInput = document.getElementById('date');
|
||||
if (dateInput) {
|
||||
const today = new Date().toISOString().split('T')[0];
|
||||
dateInput.setAttribute('min', today);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user