22 - python & all web labs

This commit is contained in:
2026-05-02 20:27:02 +05:00
parent ef77f101fa
commit 19af922baf
5781 changed files with 770492 additions and 96 deletions

85
labWeb/lab8/script.js Normal file
View 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);
}
});