File size: 2,074 Bytes
6f33774 | 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 | // Main JavaScript file for WasteLess
document.addEventListener('DOMContentLoaded', function() {
// Initialize any global functionality
// Smooth scrolling for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function(e) {
if (this.getAttribute('href') === '#') {
e.preventDefault();
return;
}
if (this.getAttribute('href').startsWith('#')) {
e.preventDefault();
document.querySelector(this.getAttribute('href')).scrollIntoView({
behavior: 'smooth'
});
}
});
});
// Initialize tooltips for icons
const initTooltips = () => {
const tooltipElements = document.querySelectorAll('[data-tooltip]');
tooltipElements.forEach(el => {
const tooltipText = el.getAttribute('data-tooltip');
const tooltip = document.createElement('div');
tooltip.className = 'tooltip hidden absolute z-50 bg-gray-800 text-white text-xs rounded py-1 px-2 bottom-full left-1/2 transform -translate-x-1/2 mb-2';
tooltip.textContent = tooltipText;
el.appendChild(tooltip);
el.addEventListener('mouseenter', () => {
tooltip.classList.remove('hidden');
});
el.addEventListener('mouseleave', () => {
tooltip.classList.add('hidden');
});
});
};
// Initialize after feather icons are loaded
feather.replace({
onReady: initTooltips
});
// Detect if user has reduced motion preference
const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
if (reducedMotion) {
document.documentElement.style.setProperty('--animation-duration', '0.001s');
}
// Track current page for analytics (placeholder)
console.log(`Current page: ${window.location.pathname}`);
}); |