$(function () { /* ========================================== 0. 공통 설정 및 라이브러리 등록 ========================================== */ gsap.registerPlugin(ScrollTrigger, ScrollToPlugin); // TOP 버튼 공통 함수 const goToTop = (duration = 1) => { gsap.to(window, { duration: duration, scrollTo: 0, ease: "power3.inOut", onComplete: () => { ScrollTrigger.refresh(); } }); }; /* ========================================== 1. 주요기능(Features) 데이터 로드 및 탭 전환 ========================================== */ async function loadFeatures() { const $featureDisplay = $('#feature-display'); const $menuList = $('#menu-list'); if ($featureDisplay.length === 0 || $menuList.length === 0) return; try { const response = await fetch('../source/data/product.json'); const data = await response.json(); const features = data.features; $menuList.empty(); // [수정] 클래스 변경을 포함한 아이템 렌더링 함수 const renderItems = (categoryData) => { // 1. 기존 카테고리 관련 클래스들 모두 제거 (클린업) // 기존에 어떤 카테고리 클래스가 붙었을지 모르니, 'feature-list' 외의 클래스는 지우는 게 안전합니다. $featureDisplay.removeClass().addClass('feature-list'); // 2. 현재 카테고리명을 소문자로 변환하여 클래스 추가 (예: Core -> core) const categoryClass = categoryData.category.toLowerCase(); $featureDisplay.addClass(categoryClass); // 3. 아이템 출력 $featureDisplay.empty(); categoryData.items.forEach(item => { const itemHtml = `
${item.title}