Spaces:
Running
Running
File size: 1,865 Bytes
1f3be01 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
// Shared JavaScript across all pages
console.log('Eventful Days App loaded');
// Smooth scrolling for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function (e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) {
window.scrollTo({
top: target.offsetTop - 80,
behavior: 'smooth'
});
}
});
});
// Navbar scroll effect
window.addEventListener('scroll', function() {
const navbar = document.querySelector('custom-navbar');
if (window.scrollY > 50) {
navbar.classList.add('scrolled');
} else {
navbar.classList.remove('scrolled');
}
});
// Form validation example
function validateForm(form) {
let isValid = true;
// Example validation for required fields
form.querySelectorAll('[required]').forEach(field => {
if (!field.value.trim()) {
isValid = false;
field.classList.add('border-red-500');
} else {
field.classList.remove('border-red-500');
}
});
return isValid;
}
// Toggle mobile menu
function toggleMobileMenu() {
const menu = document.getElementById('mobile-menu');
menu.classList.toggle('hidden');
}
// Initialize tooltips (if using)
function initTooltips() {
const tooltips = document.querySelectorAll('[data-tooltip]');
tooltips.forEach(tooltip => {
tooltip.addEventListener('mouseenter', function() {
const tooltipText = this.getAttribute('data-tooltip');
// Implementation for showing tooltip
});
});
}
// Document ready equivalent
document.addEventListener('DOMContentLoaded', function() {
console.log('DOM fully loaded');
initTooltips();
}); |