amir-rf's picture
I want you to generate a complete multi-page website for a concept called WasteLess, based on this video:
6f33774 verified
Raw
History Blame
2.07 kB
// 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}`);
});