1$(function(){ 2 const noticeSwiper = new Swiper(".notice-swiper .swiper", { 3 direction: "vertical", 4 centeredSlides: true, 5 navigation: { 6 nextEl: '.notice-swiper .swiper-button-next', 7 prevEl: '.notice-swiper .swiper-button-prev', 8 }, 9 loop: true, 10 spaceBetween: 12, 11 slidesPerView: 3, 12 observer: true, 13 autoplay: { 14 delay: 4000, 15 disableOnInteraction: false 16 }, 17 }); 18 19 let isPaused = false; 20 21 $('.swiper-button-pause').on('click', function () { 22 if (isPaused) { 23 noticeSwiper.autoplay.start(); 24 $(this).removeClass('paused'); 25 } else { 26 noticeSwiper.autoplay.stop(); 27 $(this).addClass('paused'); 28 } 29 isPaused = !isPaused; 30 }); 31 32 new Swiper(".transfer-swiper", { 33 navigation: { 34 nextEl: '.transfer .swiper-button-next', 35 prevEl: '.transfer .swiper-button-prev', 36 }, 37 slidesPerView: 1, 38 spaceBetween: 8, 39 observer: true, 40 breakpoints: { 41 0: { 42 grid: { 43 rows: 2, 44 }, 45 }, 46 768: { 47 grid: { 48 rows: 3, 49 }, 50 }, 51 } 52 }); 53 54 // ì§ë 55 // fetch('/front/img/index/map.svg').then(r => r.text()).then(svg => { 56 // document.getElementById('map').outerHTML = svg; 57 // }).catch(console.error); 58 59 $('.map path[data-slide=0], .map .bubble:first-child').addClass('on'); 60 61 $('.map path[data-slide]').on('click', function(){ 62 $(this).addClass('on').siblings().removeClass('on'); 63 citySwiper.slideToLoop(+this.dataset.slide); 64 }); 65 66 const citySwiper = new Swiper(".city-swiper", { 67 navigation: { 68 nextEl: '.city-swiper .swiper-button-next', 69 prevEl: '.city-swiper .swiper-button-prev', 70 }, 71 loop: true, 72 observer: true, 73 on: { 74 slideChange: function () { 75 const cur = this.realIndex; 76 document.querySelectorAll('.map path[data-slide]').forEach(el => el.classList.toggle('on', +el.dataset.slide === cur)); 77 document.querySelectorAll('.map .bubble').forEach((b, i) => b.classList.toggle('on', i === cur)); 78 }, 79 }, 80 }); 81 82 new Swiper(".work-swiper", { 83 navigation: { 84 nextEl: '.work-swiper .swiper-button-next', 85 prevEl: '.work-swiper .swiper-button-prev', 86 }, 87 loop: true, 88 observer: true, 89 }); 90 91 new Swiper(".promotion .swiper", { 92 navigation: { 93 nextEl: '.promotion .swiper-button-next', 94 prevEl: '.promotion .swiper-button-prev', 95 }, 96 observer: true, 97 simulateTouch: false, 98 }); 99 100 // ë²í¼ì¤ìì´í¼ 101 const buttonWrappers = document.querySelectorAll('.swiper-buttons'); 102 103 buttonWrappers.forEach(wrapper => { 104 const buttons = wrapper.querySelectorAll('button'); 105 const swiperSelector = wrapper.getAttribute('data-swiper'); 106 const swiperEl = document.querySelector(swiperSelector); 107 108 if (!swiperEl || !swiperEl.swiper) return; 109 const swiper = swiperEl.swiper; 110 111 const dropdownBtn = wrapper.closest('.dropdown').querySelector('.dropdown-button'); 112 113 function updateButtons(activeIdx) { 114 buttons.forEach((b, i) => b.classList.toggle('active', i === activeIdx)); 115 if (dropdownBtn) { 116 dropdownBtn.textContent = buttons[activeIdx].textContent; 117 } 118 } 119 120 buttons.forEach((btn, index) => { 121 btn.addEventListener('click', () => { 122 swiper.slideToLoop(index); 123 updateButtons(index); 124 }); 125 }); 126 127 swiper.on('slideChange', () => { 128 updateButtons(swiper.realIndex); 129 }); 130 131 updateButtons(swiper.realIndex); 132 }); 133 134 135 const companySwiper = new Swiper('.company-swiper', { 136 navigation: { 137 nextEl: '.main-member-company .swiper-button-next', 138 prevEl: '.main-member-company .swiper-button-prev' 139 }, 140 breakpoints: { 141 0: { 142 slidesPerView: 1, 143 grid: { 144 rows: 2, 145 }, 146 spaceBetween: 12, 147 }, 148 557: { 149 slidesPerView: 2, 150 grid: { 151 rows: 2, 152 }, 153 spaceBetween: 12, 154 }, 155 992: { 156 slidesPerView: 3, 157 grid: { 158 rows: 2, 159 }, 160 spaceBetween: 24, 161 }, 162 1600:{ 163 slidesPerView: 4, 164 grid: { 165 rows: 2, 166 }, 167 spaceBetween: 24, 168 } 169 } 170 }); 171 172 // íë¨ 173 const marquee = document.querySelector('.marquee'); 174 175 if(marquee){ 176 const items = marquee.querySelectorAll('li'); 177
178 items.forEach(item => { 179 const clone = item.cloneNode(true); 180 marquee.appendChild(clone); 181 }); 182 } 183 184 // ë¹ëì¤ ë©íë°ì´í° ë¡ë ì ê°ë³ ì¬ë¼ì´ë ì¤ì 185 $('.main-top video').each(function(){ 186 $(this).on('loadedmetadata', function() { 187 var slide = $(this).closest('.swiper-slide'); 188 slide.attr('data-swiper-autoplay', this.duration * 1000); 189 }); 190 }); 191 192 function setAutoplayDelayByActive(swiper) { 193 const $active = $(swiper.slides[swiper.activeIndex]); 194 const vid = $active.find('video:visible').get(0); 195 196 const delay = (vid && isFinite(vid.duration) && !isNaN(vid.duration) && vid.duration > 0) 197 ? Math.max(1000, Math.round(vid.duration * 1000)) 198 : 5000; 199 200 swiper.params.autoplay.delay = delay; 201 if (swiper.autoplay && swiper.autoplay.running) swiper.autoplay.stop(); 202 swiper.autoplay.start(); 203 } 204 205 function bindActiveVideoHandlers(swiper) { 206 document.querySelectorAll('.main-top video').forEach(v => { 207 v.onended = null; 208 }); 209 210 const $active = $(swiper.slides[swiper.activeIndex]); 211 const vid = $active.find('video:visible').get(0); 212 if (vid) { 213 vid.onended = function () { 214 if (swiper.params.loop) { 215 swiper.slideNext(); 216 } else { 217 if (swiper.isEnd) { 218 swiper.autoplay && swiper.autoplay.stop(); 219 } else { 220 swiper.slideNext(); 221 } 222 } 223 }; 224 } 225 } 226 227 const isLoop = $('.main-top .swiper-slide').length > 1; 228 229 // ë©ì¸ ë¹ì£¼ì¼ ì¬ë¼ì´ë 230 var visualSwiper = new Swiper(".main-top-visual", { 231 loop: isLoop, 232 loopAdditionalSlides: 3, 233 speed: 1500, 234 effect: 'fade', 235 autoplay: { 236 delay: 5000, 237 disableOnInteraction: false 238 }, 239 on: { 240 init(swiper){ 241 if (!isLoop) swiper.autoplay.stop(); 242 243 const $video = $('.main-top .swiper-slide-active').find('video:visible'); 244 if ($video.length) $video[0].play(); 245 246 setAutoplayDelayByActive(swiper); 247 bindActiveVideoHandlers(swiper); 248 }, 249 slideChangeTransitionStart(swiper){ 250 $('.main-top .swiper-slide').removeClass('init'); 251 document.querySelectorAll('.main-top video').forEach(function (video) { 252 video.pause(); 253 }); 254 }, 255 slideChangeTransitionEnd(swiper){ 256 const $video = $('.main-top .swiper-slide-active').find('video:visible'); 257 if ($video.length) { 258 const el = $video[0]; 259 260 if (isNaN(el.duration) || !isFinite(el.duration) || el.duration === 0) { 261 const once = () => { 262 setAutoplayDelayByActive(swiper); 263 el.removeEventListener('loadedmetadata', once); 264 }; 265 el.addEventListener('loadedmetadata', once, { once: true }); 266 } else { 267 setAutoplayDelayByActive(swiper); 268 } 269 el.play(); 270 } else { 271 // ë¹ëì¤ ìë ì¬ë¼ì´ëë í´ë°± 5ì´ 272 swiper.params.autoplay.delay = 5000; 273 if (swiper.autoplay.running) swiper.autoplay.stop(); 274 swiper.autoplay.start(); 275 } 276 277 bindActiveVideoHandlers(swiper); 278 } 279 } 280 }); 281 282 let isFirstMeasure = true; 283 284 document.querySelectorAll(".popup-swiper").forEach((el) => { 285 const swiper = new Swiper(el, { 286 autoHeight: true, 287 spaceBetween: 0, 288 navigation: { 289 nextEl: el.closest(".popup").querySelector(".swiper-button-next"), 290 prevEl: el.closest(".popup").querySelector(".swiper-button-prev"), 291 },
292 speed: 800, 293 autoplay: { 294 delay: 5000, 295 disableOnInteraction: false 296 }, 297 pagination: { 298 el: el.closest(".popup").querySelector(".swiper-pagination"), 299 type: "fraction", 300 }, 301 on: { 302 init() { 303 safeUpdateWidth(this); 304 }, 305 slideChange() { 306 safeUpdateWidth(this); 307 }, 308 }, 309 }); 310 311 // íì ì´ display:noneì´ìë¤ê° ë³´ì¼ ë ì íí ì¬ê³ì° 312 function safeUpdateWidth(swiperInstance) { 313 // í íë ì ë¤ì ê³ì°íë©´ ë ì´ììì´ ìì íë ìíìì 측ì ê°ë¥ 314 requestAnimationFrame(() => updateToImageWidth(swiperInstance)); 315 } 316 317 function updateToImageWidth(swiperInstance) { 318 const slide = swiperInstance.slides[swiperInstance.activeIndex]; 319 if (!slide) return; 320 const img = slide.querySelector("img"); 321 if (!img) return; 322 323 const apply = () => { 324 const w = img.getBoundingClientRect().width; 325 swiperInstance.el.style.width = Math.round(w) + "px"; 326 swiperInstance.updateAutoHeight(200); 327 328 if (isFirstMeasure) { 329 swiperInstance.el.classList.remove("hidden"); 330 isFirstMeasure = false; 331 } 332 }; 333 334 if (!img.complete || img.naturalWidth === 0) { 335 img.onload = apply; 336 } else { 337 apply(); 338 } 339 } 340 341 // 리ì¬ì´ì¦ ì ì¦ì ì¬ê³ì° 342 window.addEventListener("resize", () => safeUpdateWidth(swiper)); 343 344 // íì ì´ ì´ë¦´ ë ì¸ë¶ìì í¸ì¶í ì ìëë¡ ê³µê°(ì í) 345 el.updateSwiperWidthToImage = () => safeUpdateWidth(swiper); 346 }); 347 348 $('.pop-close').on('click', function(){ 349 $(this).closest('.popup').hide(); 350 }); 351 352 // ë©ì¸ì í 353 new Swiper(".news-swiper", { 354 navigation: { 355 nextEl: '.main-sect-news .swiper-button-next', 356 prevEl: '.main-sect-news .swiper-button-prev', 357 }, 358 observer: true, 359 breakpoints: { 360 0: { 361 slidesPerView: 2, 362 spaceBetween: 6, 363 }, 364 557: { 365 slidesPerView: 3, 366 spaceBetween: 12, 367 }, 368 992: { 369 slidesPerView: 4, 370 spaceBetween: 24, 371 }, 372 1200:{ 373 slidesPerView: 5, 374 spaceBetween: 24, 375 }, 376 1600:{ 377 slidesPerView: 5, 378 spaceBetween: 36, 379 } 380 } 381 }); 382 383 new Swiper(".issue-swiper", { 384 navigation: { 385 nextEl: '.main-sect-issue .swiper-button-next', 386 prevEl: '.main-sect-issue .swiper-button-prev', 387 }, 388 observer: true, 389 breakpoints: { 390 0: { 391 slidesPerView: 2, 392 spaceBetween: 6, 393 }, 394 557: { 395 slidesPerView: 3, 396 spaceBetween: 12, 397 }, 398 992: { 399 slidesPerView: 4, 400 spaceBetween: 24, 401 }, 402 1200:{ 403 slidesPerView: 5, 404 spaceBetween: 24, 405 }, 406 1600:{ 407 slidesPerView: 5, 408 spaceBetween: 36, 409 } 410 } 411 }); 412 413 new Swiper(".brief-swiper", { 414 navigation: { 415 nextEl: '.swiper-button-next', 416 prevEl: '.swiper-button-prev', 417 }, 418 observer: true, 419 slidesPerView: 2, 420 spaceBetween: 6, 421 breakpoints: { 422 0: { 423 slidesPerView: 1, 424 spaceBetween: 6, 425 }, 426 557: { 427 slidesPerView: 2, 428 spaceBetween: 6, 429 }, 430 768: { 431 slidesPerView: 3, 432 spaceBetween: 6, 433 }, 434 1200:{ 435 slidesPerView: 4, 436 spaceBetween: 12, 437 }, 438 1600:{ 439 slidesPerView: 4, 440 spaceBetween: 24, 441 } 442 } 443 }); 444});
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.