"광주 문화예술 인문스토리 플랫폼2"의 두 판 사이의 차이

광주문화예술인문스토리플랫폼
이동: 둘러보기, 검색
 
(같은 사용자의 중간 판 8개는 보이지 않습니다)
1번째 줄: 1번째 줄:
 
{{#tag:html|
 
{{#tag:html|
      <!-- 에디터 컨텐츠 등록 영역 -->
+
<!-- 에디터 컨텐츠 등록 영역 -->
 
       <div class="gwangju-main-wrap">
 
       <div class="gwangju-main-wrap">
 
         <!-- 메인 베너 영역 -->
 
         <!-- 메인 베너 영역 -->
88번째 줄: 88번째 줄:
 
                         <span class="txt">기억의 시간, 회중 시계를 통한 <br />과거로의 여행</span>
 
                         <span class="txt">기억의 시간, 회중 시계를 통한 <br />과거로의 여행</span>
 
                       </h2>
 
                       </h2>
                       <dispanv class="visual-btn">
+
                       <span class="visual-btn">
 
                         <span class="main-btn">
 
                         <span class="main-btn">
 
                           <span class="btn-txt">VIEW MORE</span>
 
                           <span class="btn-txt">VIEW MORE</span>
 
                           <i class="ico-arrow"></i>
 
                           <i class="ico-arrow"></i>
 
                         </span>
 
                         </span>
                       </dispanv>
+
                       </span>
 
                     </span>
 
                     </span>
 
                   </a>
 
                   </a>
110번째 줄: 110번째 줄:
 
               <div class="main-header">
 
               <div class="main-header">
 
                 <p class="main-subtit">MEMORIAL SITE</p>
 
                 <p class="main-subtit">MEMORIAL SITE</p>
                 <h2 class="main-tit">장소로 알아보는 <br />열흘 간의 항쟁 기록</h2>
+
                 <h2 class="main-tit">1980년 5월의 <br />광주를 걷다</h2>
 
               </div>
 
               </div>
 
               <p class="txt-desc">
 
               <p class="txt-desc">
126번째 줄: 126번째 줄:
 
             <div class="section02-img">
 
             <div class="section02-img">
 
               <img
 
               <img
                 src="/wiki/skins/ETBSkin/images/new/img_main_banner02.jpg"
+
                 src="/wiki/skins/ETBSkin/images/new/img_main_banner01.jpg"
 
                 alt=""
 
                 alt=""
 
                 class="pc-show"
 
                 class="pc-show"
 
               />
 
               />
 
               <img
 
               <img
                 src="/wiki/skins/ETBSkin/images/new/img_main_banner03.jpg"
+
                 src="/wiki/skins/ETBSkin/images/new/img_main_banner02.jpg"
 
                 alt=""
 
                 alt=""
 
                 class="mb-show"
 
                 class="mb-show"
 
               />
 
               />
 
               <div class="place-group">
 
               <div class="place-group">
                 <img src="/wiki/skins/ETBSkin/images/new/img_main_place01.png" alt="" />
+
                 <img
                 <img src="/wiki/skins/ETBSkin/images/new/img_main_place02.png" alt="" />
+
                  class="img1"
                 <img src="/wiki/skins/ETBSkin/images/new/img_main_place03.png" alt="" />
+
                  src="/wiki/skins/ETBSkin/images/new/img_main_place01.png"
 +
                  alt=""
 +
                />
 +
                 <img
 +
                  class="img2"
 +
                  src="/wiki/skins/ETBSkin/images/new/img_main_place03.png"
 +
                  alt=""
 +
                />
 +
                 <img
 +
                  class="img3"
 +
                  src="/wiki/skins/ETBSkin/images/new/img_main_place02.png"
 +
                  alt=""
 +
                />
 
               </div>
 
               </div>
 
             </div>
 
             </div>
150번째 줄: 162번째 줄:
 
             <div class="main-inner">
 
             <div class="main-inner">
 
               <div class="main-header">
 
               <div class="main-header">
                 <p class="main-subtit lato">STORY DATA</p>
+
                 <p class="main-subtit">STORY DATA</p>
 
                 <h2 class="main-tit">카테고리별로 만나는<br />인문 스토리</h2>
 
                 <h2 class="main-tit">카테고리별로 만나는<br />인문 스토리</h2>
 
               </div>
 
               </div>
 
               <div class="category-filters">
 
               <div class="category-filters">
 
                 <div class="filter-btn-group">
 
                 <div class="filter-btn-group">
                   <button type="button" class="filter-btn active">
+
                   <button type="button" class="filter-btn active" data-category="person">
 
                     <span class="icon icon-person"></span>
 
                     <span class="icon icon-person"></span>
 
                     <span class="filter-txt">인물/단체</span>
 
                     <span class="filter-txt">인물/단체</span>
 
                   </button>
 
                   </button>
                   <button type="button" class="filter-btn">
+
                   <button type="button" class="filter-btn" data-category="term">
 
                     <span class="icon icon-term"></span>
 
                     <span class="icon icon-term"></span>
 
                     <span class="filter-txt">개념/용어</span>
 
                     <span class="filter-txt">개념/용어</span>
 
                   </button>
 
                   </button>
                   <button type="button" class="filter-btn">
+
                   <button type="button" class="filter-btn" data-category="event">
 
                     <span class="icon icon-event"></span>
 
                     <span class="icon icon-event"></span>
 
                     <span class="filter-txt">사건</span>
 
                     <span class="filter-txt">사건</span>
 
                   </button>
 
                   </button>
                   <button type="button" class="filter-btn">
+
                   <button type="button" class="filter-btn" data-category="data">
 
                     <span class="icon icon-data"></span>
 
                     <span class="icon icon-data"></span>
 
                     <span class="filter-txt">자료</span>
 
                     <span class="filter-txt">자료</span>
 
                   </button>
 
                   </button>
                   <button type="button" class="filter-btn">
+
                   <button type="button" class="filter-btn" data-category="object">
 
                     <span class="icon icon-object"></span>
 
                     <span class="icon icon-object"></span>
 
                     <span class="filter-txt">사물</span>
 
                     <span class="filter-txt">사물</span>
 
                   </button>
 
                   </button>
                   <button type="button" class="filter-btn">
+
                   <button type="button" class="filter-btn" data-category="place">
 
                     <span class="icon icon-place"></span>
 
                     <span class="icon icon-place"></span>
 
                     <span class="filter-txt">장소</span>
 
                     <span class="filter-txt">장소</span>
 
                   </button>
 
                   </button>
                   <button type="button" class="filter-btn">
+
                   <button type="button" class="filter-btn" data-category="record">
 
                     <span class="icon icon-record"></span>
 
                     <span class="icon icon-record"></span>
 
                     <span class="filter-txt">기록물</span>
 
                     <span class="filter-txt">기록물</span>
202번째 줄: 214번째 줄:
 
                         <span class="card-image">
 
                         <span class="card-image">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/img_main_story01.png"
+
                             src="/wiki/skins/ETBSkin/images/new/img_main_story01.jpg"
 
                             alt="광주비엔날레"
 
                             alt="광주비엔날레"
 
                           />
 
                           />
220번째 줄: 232번째 줄:
 
                         <span class="card-image">
 
                         <span class="card-image">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/img_main_story01.png"
+
                             src="/wiki/skins/ETBSkin/images/new/img_main_story01.jpg"
 
                             alt="광주비엔날레"
 
                             alt="광주비엔날레"
 
                           />
 
                           />
240번째 줄: 252번째 줄:
 
                         <span class="card-image">
 
                         <span class="card-image">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/img_main_story01.png"
+
                             src="/wiki/skins/ETBSkin/images/new/img_main_story01.jpg"
 
                             alt="광주비엔날레"
 
                             alt="광주비엔날레"
 
                           />
 
                           />
259번째 줄: 271번째 줄:
 
                         <div class="card-image">
 
                         <div class="card-image">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/img_main_story01.png"
+
                             src="/wiki/skins/ETBSkin/images/new/img_main_story01.jpg"
 
                             alt="광주비엔날레"
 
                             alt="광주비엔날레"
 
                           />
 
                           />
287번째 줄: 299번째 줄:
 
                 </div>
 
                 </div>
 
                 <div class="story-links">
 
                 <div class="story-links">
                   <a href="#" class="story-link-item active" data-target="story-image-1"
+
                   <a href="#" class="story-link-item active" data-index="0"
 
                     >5월의 달리기 - 디지털 교과서</a
 
                     >5월의 달리기 - 디지털 교과서</a
 
                   >
 
                   >
                   <a href="#" class="story-link-item" data-target="story-image-2"
+
                   <a href="#" class="story-link-item" data-index="1"
 
                     >양림동 선교사 마을, 새로운 문화와의 만남</a
 
                     >양림동 선교사 마을, 새로운 문화와의 만남</a
 
                   >
 
                   >
                   <a href="#" class="story-link-item" data-target="story-image-3"
+
                   <a href="#" class="story-link-item" data-index="2"
 
                     >기억, 회복 그리고 광주비엔날레</a
 
                     >기억, 회복 그리고 광주비엔날레</a
 
                   >
 
                   >
                   <a href="#" class="story-link-item" data-target="story-image-4"
+
                   <a href="#" class="story-link-item" data-index="3">광주의 고려인 마을</a>
                    >광주의 고려인 마을</a
+
                   <a href="#" class="story-link-item" data-index="4">관광을 품은 무등산</a>
                  >
+
                   <a href="#" class="story-link-item" data-index="5">극락강 역</a>
                   <a href="#" class="story-link-item" data-target="story-image-5"
+
                   <a href="#" class="story-link-item" data-index="6">구 MBC</a>
                    >관광을 품은 무등산</a
+
                   <a href="#" class="story-link-item" data-index="7">충장로, 광주의 삶을 담다</a>
                  >
+
                   <a href="#" class="story-link-item" data-index="8"
                   <a href="#" class="story-link-item" data-target="story-image-6">극락강 역</a>
 
                   <a href="#" class="story-link-item" data-target="story-image-7">구 MBC</a>
 
                   <a href="#" class="story-link-item" data-target="story-image-8"
 
                    >충장로, 광주의 삶을 담다</a
 
                  >
 
                   <a href="#" class="story-link-item" data-target="story-image-9"
 
 
                     >영산강과 황룡강이 품은 광주의 유원지</a
 
                     >영산강과 황룡강이 품은 광주의 유원지</a
 
                   >
 
                   >
                   <a href="#" class="story-link-item" data-target="story-image-10">광주로컬음악</a>
+
                   <a href="#" class="story-link-item" data-index="9">광주로컬음악</a>
 
                 </div>
 
                 </div>
 
               </div>
 
               </div>
316번째 줄: 322번째 줄:
 
                 <div class="image-scroll-container swiper">
 
                 <div class="image-scroll-container swiper">
 
                   <div class="swiper-wrapper">
 
                   <div class="swiper-wrapper">
                     <div class="swiper-slide active" id="story-image-1">
+
                     <div class="swiper-slide" id="story-image-1">
 
                       <a href="#" class="item-link">
 
                       <a href="#" class="item-link">
 
                         <span class="item-img">
 
                         <span class="item-img">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_01.png"
+
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_01.jpg"
 
                             alt="가상 공간 에셋 1"
 
                             alt="가상 공간 에셋 1"
 
                           />
 
                           />
332번째 줄: 338번째 줄:
 
                         <span class="item-img">
 
                         <span class="item-img">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_02.png"
+
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_02.jpg"
 
                             alt="가상 공간 에셋 2"
 
                             alt="가상 공간 에셋 2"
 
                           />
 
                           />
344번째 줄: 350번째 줄:
 
                         <span class="item-img">
 
                         <span class="item-img">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_03.png"
+
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_03.jpg"
 
                             alt="가상 공간 에셋 3"
 
                             alt="가상 공간 에셋 3"
 
                           />
 
                           />
356번째 줄: 362번째 줄:
 
                         <span class="item-img">
 
                         <span class="item-img">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_01.png"
+
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_04.jpg"
 
                             alt="가상 공간 에셋 1"
 
                             alt="가상 공간 에셋 1"
 
                           />
 
                           />
368번째 줄: 374번째 줄:
 
                         <span class="item-img">
 
                         <span class="item-img">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_02.png"
+
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_01.jpg"
 
                             alt="가상 공간 에셋 2"
 
                             alt="가상 공간 에셋 2"
 
                           />
 
                           />
380번째 줄: 386번째 줄:
 
                         <span class="item-img">
 
                         <span class="item-img">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_03.png"
+
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_02.jpg"
 
                             alt="가상 공간 에셋 3"
 
                             alt="가상 공간 에셋 3"
 
                           />
 
                           />
392번째 줄: 398번째 줄:
 
                         <span class="item-img">
 
                         <span class="item-img">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_01.png"
+
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_03.jpg"
 
                             alt="가상 공간 에셋 1"
 
                             alt="가상 공간 에셋 1"
 
                           />
 
                           />
404번째 줄: 410번째 줄:
 
                         <span class="item-img">
 
                         <span class="item-img">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_02.png"
+
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_04.jpg"
 
                             alt="가상 공간 에셋 2"
 
                             alt="가상 공간 에셋 2"
 
                           />
 
                           />
416번째 줄: 422번째 줄:
 
                         <span class="item-img">
 
                         <span class="item-img">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_03.png"
+
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_01.jpg"
 
                             alt="가상 공간 에셋 3"
 
                             alt="가상 공간 에셋 3"
 
                           />
 
                           />
428번째 줄: 434번째 줄:
 
                         <span class="item-img">
 
                         <span class="item-img">
 
                           <img
 
                           <img
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_03.png"
+
                             src="/wiki/skins/ETBSkin/images/new/main_virtual_asset_02.jpg"
 
                             alt="가상 공간 에셋 3"
 
                             alt="가상 공간 에셋 3"
 
                           />
 
                           />
462번째 줄: 468번째 줄:
 
             </div>
 
             </div>
 
             <div class="asset-swiper">
 
             <div class="asset-swiper">
               <div id="my-keen-slider" class="keen-slider">
+
               <div id="my-keen-slider" class="keen-slider"></div>
                <div class="keen-slider__slide">
+
               <div id="my-keen-slider2" class="keen-slider"></div>
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset01.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset02.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset03.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset04.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset05.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset06.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset07.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset08.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset09.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset10.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset11.jpg" alt="" />
 
                  </a>
 
                </div>
 
              </div>
 
               <div id="my-keen-slider2" class="keen-slider">
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset01.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset02.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset03.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset04.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset05.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset06.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset07.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset08.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset09.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset10.jpg" alt="" />
 
                  </a>
 
                </div>
 
                <div class="keen-slider__slide">
 
                  <a href="#" class="asset-link">
 
                    <img src="/wiki/skins/ETBSkin/images/new/img_main_asset11.jpg" alt="" />
 
                  </a>
 
                </div>
 
              </div>
 
 
             </div>
 
             </div>
 
             <div class="section05-link">
 
             <div class="section05-link">
614번째 줄: 508번째 줄:
 
         <!-- //AR Heritage 영역 -->
 
         <!-- //AR Heritage 영역 -->
 
       </div>
 
       </div>
       <link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css" />
+
       <link rel="stylesheet" href="/wiki/skins/ETBSkin/resources/styles/swiper-bundle.min.css" />
       <link
+
       <link rel="stylesheet" href="/wiki/skins/ETBSkin/resources/styles/keen-slider.min.css" />
        rel="stylesheet"
+
       <script src="/wiki/skins/ETBSkin/resources/scripts/swiper-bundle.min.js"></script>
        href="https://cdn.jsdelivr.net/npm/keen-slider@6.8.5/keen-slider.min.css"
+
       <script src="/wiki/skins/ETBSkin/resources/scripts/storyData.js"></script>
      />
 
       <script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
 
       <script src="https://cdn.jsdelivr.net/npm/keen-slider@6.8.5/keen-slider.min.js"></script>
 
 
       <script>
 
       <script>
         let swiperInstance = null;
+
         threeDAssetData.forEach((item, index) => {
 
+
           const slideDom = document.createElement('div');
        const initSwiper = () => {
+
           slideDom.classList.add('keen-slider__slide');
           // 모바일에서만 Swiper 초기화
+
          slideDom.innerHTML = `
           if (window.innerWidth < 768) {
+
<a href="${item.link ? item.link : '#'}" class="asset-link">
            swiperInstance = new Swiper('.main-visual-swiper', {
+
  <img src="/wiki/skins/ETBSkin/images/new/${item.src}" alt="" />
              direction: 'horizontal',
+
</a>
              slidesPerView: 1,
+
`;
              spaceBetween: 0,
+
          if (threeDAssetData.length / 2 >= index) {
              pagination: {
+
             document.getElementById('my-keen-slider').appendChild(slideDom);
                el: '.swiper-fraction',
 
                type: 'bullets',
 
                clickable: true, // Bullet 클릭 가능
 
              },
 
             });
 
 
           }
 
           }
        };
+
           if (threeDAssetData.length / 2 < index) {
 
+
             document.getElementById('my-keen-slider2').appendChild(slideDom);
        const destroySwiper = () => {
 
           if (swiperInstance) {
 
             swiperInstance.destroy(true, true);
 
            swiperInstance = null;
 
 
           }
 
           }
         };
+
         });
 +
        // 스크롤 시 헤더 스타일 변경
 +
        window.addEventListener('scroll', function () {
 +
          const headerInner = document.querySelector('.header-inner');
 +
          if (!headerInner) return;
  
        // 초기화
+
           if (window.scrollY <= 10) {
        initSwiper();
+
             headerInner.classList.add('type-white');
 
+
           } else {
        // 윈도우 리사이즈 시 Swiper 재설정
+
             headerInner.classList.remove('type-white');
        window.addEventListener('resize', () => {
 
           if (window.innerWidth < 768) {
 
             if (!swiperInstance) {
 
              initSwiper();
 
            }
 
           } else if (window.innerWidth >= 768) {
 
             if (swiperInstance) {
 
              destroySwiper();
 
            }
 
 
           }
 
           }
        });
 
        document.addEventListener('DOMContentLoaded', function () {
 
          const storyLinks = document.querySelectorAll('.story-link-item');
 
          const imageContainer = document.querySelector('.image-scroll-container');
 
          const breakpoint = window.matchMedia('(max-width: 991px)');
 
          let swiperInstance;
 
 
          const initDesktop = () => {
 
            if (swiperInstance) {
 
              swiperInstance.destroy(true, true);
 
              swiperInstance = null;
 
            }
 
 
            storyLinks.forEach(link => {
 
              link.addEventListener('click', function (e) {
 
                e.preventDefault();
 
                storyLinks.forEach(l => l.classList.remove('active'));
 
                document
 
                  .querySelectorAll('.swiper-slide')
 
                  .forEach(i => i.classList.remove('active'));
 
 
                this.classList.add('active');
 
                const targetId = this.getAttribute('data-target');
 
                const targetImage = document.getElementById(targetId);
 
                if (targetImage) {
 
                  targetImage.classList.add('active');
 
 
                  const containerRect = imageContainer.getBoundingClientRect();
 
                  const imageRect = targetImage.getBoundingClientRect();
 
                  const scrollTop =
 
                    imageContainer.scrollTop +
 
                    (imageRect.top - containerRect.top) -
 
                    containerRect.height / 2 +
 
                    imageRect.height / 2;
 
 
                  imageContainer.scrollTo({
 
                    top: scrollTop + 0,
 
                    behavior: 'smooth',
 
                  });
 
                }
 
              });
 
            });
 
          };
 
 
          const initMobile = () => {
 
            swiperInstance = new Swiper('.image-scroll-container.swiper', {
 
              direction: 'horizontal',
 
              slidesPerView: 1,
 
              spaceBetween: 12,
 
              pagination: {
 
                el: '.swiper-fraction',
 
                type: 'fraction',
 
                formatFractionCurrent: number => number,
 
                formatFractionTotal: number => number,
 
              },
 
              on: {
 
                init: () => {
 
                  updateProgress();
 
                },
 
                slideChange: () => {
 
                  updateProgress();
 
                },
 
              },
 
            });
 
          };
 
 
          const updateProgress = () => {
 
            if (!swiperInstance) return;
 
            const current = swiperInstance.realIndex + 1;
 
            const total = swiperInstance.slides.length;
 
            const percent = (current / total) * 100;
 
            const progressBar = document.querySelector('.swiper-progressbar .progress-fill');
 
            if (progressBar) {
 
              progressBar.style.width = `${percent}%`;
 
            }
 
          };
 
 
          const handleResize = () => {
 
            if (breakpoint.matches) {
 
              initMobile();
 
            } else {
 
              initDesktop();
 
            }
 
          };
 
 
          breakpoint.addEventListener('change', handleResize);
 
          handleResize();
 
        });
 
        document.addEventListener('DOMContentLoaded', function () {
 
          // 공통 브레이크포인트 기준
 
          const breakpoint = window.matchMedia('(max-width: 991px)');
 
 
          // Story Swiper (모바일 전용 터치)
 
          let storySwiper;
 
 
          const initStorySwiper = () => {
 
            const isMobile = breakpoint.matches;
 
 
            if (storySwiper) storySwiper.destroy(true, true);
 
 
            storySwiper = new Swiper('.story-swiper .swiper', {
 
              slidesPerView: 1,
 
              spaceBetween: 24,
 
              grabCursor: isMobile,
 
              simulateTouch: isMobile,
 
              allowTouchMove: isMobile,
 
              pagination: {
 
                el: '.swiper-pagination',
 
                clickable: true,
 
              },
 
              navigation: {
 
                nextEl: '.swiper-button-next',
 
                prevEl: '.swiper-button-prev',
 
              },
 
              mousewheel: isMobile
 
                ? {
 
                    forceToAxis: true,
 
                    invert: false,
 
                  }
 
                : false,
 
              on: {
 
                progress: function (swiper, progress) {
 
                  const indicatorBar = swiper.el.querySelector('.indicator-bar');
 
                  if (indicatorBar) {
 
                    indicatorBar.style.width = progress * 100 + '%';
 
                  }
 
                },
 
              },
 
            });
 
          };
 
 
          breakpoint.addEventListener('change', initStorySwiper);
 
          initStorySwiper();
 
 
          // Asset Swiper type01
 
          const swiper01 = new Swiper('.asset-swiper .type01', {
 
            loop: true,
 
            slidesPerView: 'auto',
 
            spaceBetween: 8,
 
            autoplay: {
 
              delay: 0,
 
              disableOnInteraction: false,
 
            },
 
            speed: 5000,
 
            freeMode: true,
 
            breakpoints: {
 
              991: {
 
                spaceBetween: 28,
 
              },
 
            },
 
          });
 
 
          // Asset Swiper type02
 
          const swiper02 = new Swiper('.asset-swiper .type02', {
 
            loop: true,
 
            slidesPerView: 'auto',
 
            spaceBetween: 8,
 
            autoplay: {
 
              delay: 0,
 
              disableOnInteraction: false,
 
              reverseDirection: true,
 
            },
 
            speed: 5000,
 
            freeMode: true,
 
            breakpoints: {
 
              991: {
 
                spaceBetween: 28,
 
              },
 
            },
 
          });
 
 
         });
 
         });
  
 +
        // 페이지 로드 시 초기 상태 설정
 
         document.addEventListener('DOMContentLoaded', function () {
 
         document.addEventListener('DOMContentLoaded', function () {
           const progressBar = document.querySelector('.gwangju-main-section04 .progress-bar');
+
           const headerInner = document.querySelector('.header-inner');
           const metaverseSlider = new Swiper('.gwangju-metaverse-slider', {
+
           if (!headerInner) return;
            loop: true,
 
            slidesPerView: 1.2,
 
            spaceBetween: 15,
 
            pagination: {
 
              el: '.swiper-pagination',
 
              type: 'fraction',
 
            },
 
            on: {
 
              slideChange: function () {
 
                const totalSlides = this.slides.length - this.loopedSlides * 2;
 
                const progress = (this.realIndex + 1) / totalSlides;
 
                if (progressBar) {
 
                  progressBar.style.width = progress * 100 + '%';
 
                }
 
              },
 
            },
 
            breakpoints: {
 
              769: {
 
                slidesPerView: 3,
 
                spaceBetween: 30,
 
              },
 
              1024: {
 
                slidesPerView: 4,
 
                spaceBetween: 30,
 
              },
 
            },
 
          });
 
        });
 
        var animation = {
 
          duration: (document.querySelectorAll('.keen-slider__slide').length / 2) * 1500,
 
          easing: t => t,
 
        };
 
 
 
        // 변수 초기화
 
        let slider = null;
 
        let slider2 = null;
 
        let autoplayActive = true;
 
        let autoplayTimeoutId = null;
 
        let isSyncingSlider1 = false;
 
        let isSyncingSlider2 = false;
 
        let isMouseOverContainer = false; // 컨테이너 마우스 상태 추적 변수
 
        // 슬라이더 2 먼저 초기화
 
        slider2 = new KeenSlider('#my-keen-slider2', {
 
          loop: true,
 
          renderMode: 'performance',
 
          mode: 'free',
 
          rtl: true,
 
          slides: {
 
            perView: 'auto',
 
            spacing: 8,
 
          },
 
          breakpoints: {
 
            '(min-width: 500px)': {
 
              slides: {
 
                perView: 'auto',
 
                spacing: 28,
 
              },
 
            },
 
          },
 
          created(s) {
 
            if (!isMouseOverContainer) {
 
              s.moveToIdx(5, true, animation);
 
            }
 
          },
 
          animationEnded(s) {
 
            // if (!isMouseOverContainer) {
 
            slider2.endTimer = setTimeout(() => {
 
              slider?.moveToIdx(slider.track.details.abs + 4, true, animation);
 
              s.moveToIdx(s.track.details.abs + 5, true, animation);
 
            }, 1000);
 
            // }
 
          },
 
          detailsChanged(s) {
 
            // 마우스가 컨테이너 위에 있을 때만 동기화 작동
 
            if (slider2?.endTimer) clearTimeout(slider2?.endTimer);
 
            if (!isSyncingSlider1) {
 
              if (slider) {
 
                if (slider.track) {
 
                  slider.animator.stop();
 
                  isSyncingSlider2 = true;
 
                  // 위치 동기화
 
                  const position = s.track.details.position;
 
                  slider.track.to(position);
 
                  setTimeout(() => {
 
                    isSyncingSlider2 = false;
 
                  }, 30);
 
                }
 
              }
 
            }
 
          },
 
        });
 
  
        // slider1 초기화
+
           if (window.scrollY <= 10) {
        slider = new KeenSlider('#my-keen-slider', {
+
             headerInner.classList.add('type-white');
          loop: true,
+
           } else {
          renderMode: 'performance',
+
             headerInner.classList.remove('type-white');
          mode: 'free',
 
          breakpoints: {
 
            '(min-width: 500px)': {
 
              slides: {
 
                perView: 'auto',
 
                spacing: 28,
 
              },
 
            },
 
          },
 
          slides: {
 
            perView: 'auto',
 
            spacing: 8,
 
          },
 
          created(s) {
 
            if (!isMouseOverContainer) {
 
              s.moveToIdx(5, true, animation);
 
            }
 
          },
 
           animationEnded(s) {
 
            // if (!isMouseOverContainer) {
 
            slider.endTimer = setTimeout(() => {
 
              slider2?.moveToIdx(slider2.track.details.abs + 4, true, animation);
 
              s.moveToIdx(s.track.details.abs + 5, true, animation);
 
            }, 1000);
 
            // }
 
          },
 
          detailsChanged(s) {
 
             if (slider?.endTimer) clearTimeout(slider?.endTimer);
 
            // 마우스가 컨테이너 위에 있을 때만 동기화 작동
 
            if (!isSyncingSlider2) {
 
              if (slider2) {
 
                if (slider2.track) {
 
                  slider2.animator.stop();
 
                  isSyncingSlider1 = true;
 
                  slider2.track.to(s.track.details.position);
 
                  setTimeout(() => {
 
                    isSyncingSlider1 = false;
 
                  }, 30);
 
                }
 
              }
 
            }
 
          },
 
        });
 
 
 
        // 컨테이너 하나에만 마우스 이벤트 적용
 
        document.querySelector('.asset-swiper').addEventListener('pointerdown', () => {
 
          // 타임아웃 삭제
 
          if (autoplayTimeoutId) clearTimeout(autoplayTimeoutId);
 
 
 
          // 현재 진행 중인 애니메이션 중단
 
          if (slider) {
 
            if (slider.animator) {
 
              slider.animator.stop();
 
            }
 
           }
 
          if (slider2) {
 
             if (slider2.animator) {
 
              slider2.animator.stop();
 
            }
 
 
           }
 
           }
 
         });
 
         });
 
       </script>
 
       </script>
       <!-- // 에디터 컨텐츠 등록 영역 -->}}
+
      <script src="/wiki/skins/ETBSkin/resources/scripts/keen-slider.min.js"></script>
 +
      <script src="/wiki/skins/ETBSkin/resources/scripts/gsap.min.js"></script>
 +
      <script src="/wiki/skins/ETBSkin/resources/scripts/ScrollTrigger.min.js"></script>
 +
      <script src="/wiki/skins/ETBSkin/resources/scripts/lottie.min.js"></script>
 +
      <script src="/wiki/skins/ETBSkin/resources/scripts/storymain.js"></script>
 +
       <!-- // 에디터 컨텐츠 등록 영역 -->
 +
      <style>
 +
        #firstHeading {
 +
          display: none !important;
 +
        }
 +
      </style>
 +
}}

2025년 7월 29일 (화) 11:58 기준 최신판

MEMORIAL SITE

1980년 5월의
광주를 걷다

그날의 기억이 머문 장소들을 따라가며, 시간 속에 남은 이야기를 천천히 만나보세요.
번호를 따라가며 클릭하면, 장소마다 담긴 역사적 의미와 당시의 이야기를 자세히 살펴볼 수 있습니다. 광주의 골목골목에 스며든 기억과 그날의 진실과 마주해보세요.

3D ASSET

3D로 보는
광주 인문 아카이브

AR Heritage

광주의 근현대 역사와 문화를 엿볼 수 있는 유산들을 증강현실

광주의 역사적 명소와 문화예술 거점을 AR 콘텐츠로 체험할 수 있는 투어입니다.
실시간 위치 정보와 장소의 맥락을 제공하여 시민들이 지역 인문자원을 향유하도록 기획되었습니다.
AR을 통해 광주 시민들이 공유하는 기억과 감성을 생생하게 느낄 수 있습니다.