1/** 2 * Home Slider Frontend Script 3 * This script handles the frontend functionality for the home slider block. 4 */ 5 6document.addEventListener('DOMContentLoaded', () => { 7 const sliders = document.querySelectorAll('.nua-block-home-slider'); 8 9 sliders.forEach((slider) => { 10 initializeDesktopSlider(slider); 11 }); 12}); 13 14/** 15 * Initialize desktop slider functionality 16 * @param {Element} slider - The slider container element 17 */ 18function initializeDesktopSlider(slider) { 19 const desktopSlider = slider.querySelector('.nua-home-slider-desktop'); 20 if (!desktopSlider) return; 21 22 const slideImages = desktopSlider.querySelectorAll('.nua-home-slider-desktop__slide-image'); 23 const slideNavItems = desktopSlider.querySelectorAll('.nua-home-slider-desktop__slide'); 24 25 if (slideImages.length === 0 || slideNavItems.length === 0) return; 26 27 // Add click listeners to navigation items 28 slideNavItems.forEach((navItem) => { 29 navItem.addEventListener('click', () => { 30 const slideIndex = parseInt(navItem.dataset.slideIndex); 31 activateSlide(slideIndex, slideImages, slideNavItems); 32 }); 33 }); 34} 35 36/** 37 * Activate a specific slide 38 * @param {number} index - The index of the slide to activate 39 * @param {NodeList} slideImages - All slide images 40 * @param {NodeList} slideNavItems - All navigation items 41 */ 42function activateSlide(index, slideImages, slideNavItems) { 43 // Remove active class from all images and nav items 44 slideImages.forEach((img) => img.classList.remove('active')); 45 slideNavItems.forEach((nav) => nav.classList.remove('active')); 46 47 // Add active class to current slide image and nav item 48 if (slideImages[index]) { 49 slideImages[index].classList.add('active'); 50 } 51 if (slideNavItems[index]) { 52 slideNavItems[index].classList.add('active'); 53 } 54}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.