/** * Crawlsy Menus - WordPress Plugin JavaScript */ (function($) { 'use strict'; /** * Initialize plugin */ $(document).ready(function() { // Lazy load images if ('IntersectionObserver' in window) { const imageObserver = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { const img = entry.target; if (img.dataset.src) { img.src = img.dataset.src; img.removeAttribute('data-src'); observer.unobserve(img); } } }); }); document.querySelectorAll('.crawlsy-product-image img[data-src]').forEach(img => { imageObserver.observe(img); }); } // Add animation to product cards on scroll if ('IntersectionObserver' in window) { const cardObserver = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.style.opacity = '0'; entry.target.style.transform = 'translateY(20px)'; setTimeout(() => { entry.target.style.transition = 'opacity 0.5s, transform 0.5s'; entry.target.style.opacity = '1'; entry.target.style.transform = 'translateY(0)'; }, 10); cardObserver.unobserve(entry.target); } }); }, { threshold: 0.1 }); document.querySelectorAll('.crawlsy-product-card').forEach(card => { cardObserver.observe(card); }); } }); })(jQuery);