eventful-days / script.js
Afantauzzi's picture
/* flatpickr v4.6.13,, @license MIT */
1f3be01 verified
// 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();
});