1 function handleIcoTouchpad(action) { 2 const cookieName = "touchpad"; 3 4 if (action === "Y") { 5 // ÄíŰ ÀúÀå (7ÀÏ À¯Áö) 6 const days = 1; 7 const date = new Date(); 8 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 9 const expires = "expires=" + date.toUTCString(); 10 11 document.cookie = cookieName + "=Y; " + expires + "; path=/"; 12 } 13 else { 14 // ÄíŰ »èÁ¦ (°ú°Å ³¯Â¥·Î ¼³Á¤) 15 document.cookie = cookieName + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/"; 16 } 17 18 location.reload(); 19 } 20 21 function getTouchpadCookie() { 22 const cookieName = "touchpad="; 23 const cookies = document.cookie.split(";"); 24 25 for (let i = 0; i < cookies.length; i++) { 26 let c = cookies[i].trim(); 27 28 if (c.indexOf(cookieName) === 0) { 29 return decodeURIComponent(c.substring(cookieName.length)); 30 } 31 } 32 return null; // Äí۰¡ ¾øÀ» °æ¿ì 33 } 34 35 36 37 document.addEventListener('DOMContentLoaded', () => { 38 const gnbNav = document.getElementById('gnb-nav'); 39 const mainHeader = document.getElementById('main-header'); 40 const gnbMenu = document.querySelector('.gnb-menu:not(.fixed-gnb-menu)'); 41 const fixedGnbMenu = document.querySelector('.fixed-gnb-menu'); 42 const mainSubmenuContainer = document.getElementById('all-submenus-container'); // ´ÜÀÏ ¼ºê¸Þ´º ÄÁÅ×ÀÌ³Ê 43 const hasSubmenus = document.querySelectorAll('.gnb-menu > li.has-submenu'); // ÀÏ¹Ý GNB ¸Þ´º 44 const hasSubmenusX = document.querySelectorAll('.gnb-menu > li.has-submenux'); // ÀÏ¹Ý GNB ¸Þ´ºX 45 const hasSubmenusFixed = document.querySelectorAll('.gnb-menu.fixed-gnb-menu > li.has-submenu-fixed'); // °íÁ¤ GNB ¸Þ´º 46 let currentOpenMenu = null; 47 48 // Function to show a specific submenu content 49 function showSubmenu(menuId) { 50 // ¸ðµç ¼ºê¸Þ´º ÄÜÅÙÃ÷ ¼û±â±â 51 document.querySelectorAll('.submenu-content').forEach(content => { 52 content.classList.remove('active'); 53 currentOpenMenu = ''; 54 }); 55 56 // ƯÁ¤ ¼ºê¸Þ´º ÄÜÅÙÃ÷¸¸ Ç¥½Ã 57 const targetSubmenu = document.getElementById(`submenu-${menuId}`); 58 if (targetSubmenu) { 59 targetSubmenu.classList.add('active'); 60 mainSubmenuContainer.style.display = 'block'; // Àüü ¼ºê¸Þ´º ÄÁÅ×ÀÌ³Ê º¸À̱â 61 } else { 62 mainSubmenuContainer.style.display = 'none'; // ÇØ´ç ¼ºê¸Þ´º ¾øÀ¸¸é ¼û±è 63 } 64 } 65 66 // Function to hide all submenus 67 function hideAllSubmenus() { 68 mainSubmenuContainer.style.display = 'none'; 69 document.querySelectorAll('.submenu-content').forEach(content => { 70 content.classList.remove('active'); 71 }); 72 } 73 74 // Attach mouseenter/mouseleave events to regular GNB items 75 hasSubmenus.forEach(item => { 76 item.addEventListener('mouseenter', () => { 77 const menuId = item.dataset.menu; 78 showSubmenu(menuId); 79 }); 80 }); 81 82 hasSubmenusX.forEach(item => { 83 item.addEventListener('click', () => { 84 const menuId = item.dataset.menu; 85 86 // ÀÌ¹Ì ¿¸° ¸Þ´º¸¦ ´Ù½Ã Ŭ¸¯ÇÑ °æ¿ì ¡æ ´Ý±â 87 if (currentOpenMenu === menuId) { 88 hideAllSubmenus(); 89 currentOpenMenu = null; 90 } 91 // ´Ù¸¥ ¸Þ´º Ŭ¸¯ÇÑ °æ¿ì ¡æ ÇØ´ç ¸Þ´º ¿±â 92 else { 93 showSubmenu(menuId); 94 currentOpenMenu = menuId; 95 } 96 }); 97 }); 98 99 100 // Attach mouseenter/mouseleave events to fixed GNB items 101 hasSubmenusFixed.forEach(item => { 102 item.addEventListener('mouseenter', () => { 103 const menuId = item.dataset.menu; 104 showSubmenu(menuId); 105 }); 106 }); 107 108 // Add mouseleave event to the main submenu container itself 109 mainSubmenuContainer.addEventListener('mouseleave', () => { 110 hideAllSubmenus(); 111 }); 112 113 // Also, when the mouse leaves the entire GNB area (including submenus) 114 gnbNav.addEventListener('mouseleave', (event) => { 115 // Use a small timeout to allow moving from main menu to submenu 116 setTimeout(() => { 117 if (!gnbNav.contains(event.relatedTarget) && !mainSubmenuContainer.contains(event.relatedTarget)) { 118 hideAllSubmenus(); 119 } 120 }, 50); // ªÀº Áö¿¬ ½Ã°£ 121 }); 122 123 // GNB Fixed on Scroll 124 let lastScrollY = window.scrollY; 125 let headerHeight = mainHeader.offsetHeight; 126 let gnbHeight = gnbNav.offsetHeight; 127 128 window.addEventListener('scroll', () => { 129 const currentScrollY = window.scrollY; 130 131 if (currentScrollY > headerHeight) { 132 gnbNav.classList.add('fixed'); 133 gnbMenu.style.display = 'none'; 134 fixedGnbMenu.style.display = 'flex'; 135 document.body.style.paddingTop = `${gnbHeight}px`; 136 hideAllSubmenus(); // Fixed GNB activated, hide any open submenus 137 } else { 138 gnbNav.classList.remove('fixed'); 139 gnbMenu.style.display = 'flex'; 140 fixedGnbMenu.style.display = 'none'; 141 document.body.style.paddingTop = '0'; 142 hideAllSubmenus(); // Back to unfixed, hide any open submenus 143 } 144 145 lastScrollY = currentScrollY; 146 });
147 148 // Initial load check for scroll position 149 window.dispatchEvent(new Event('scroll')); 150 }); 151 document.addEventListener('DOMContentLoaded', () => { 152 // --- Tab Menu Logic --- 153 const tabButtons = document.querySelectorAll('.tab-button'); 154 // Select the content divs by their specific IDs 155 const tabRegionContent = document.getElementById('tab-region'); 156 const tabCourtContent = document.getElementById('tab-court'); 157 158 // Function to handle tab switching 159 function switchTab(tabId) { 160 // Remove 'active' class from all tab buttons 161 tabButtons.forEach(button => { 162 button.classList.remove('active'); 163 }); 164 165 //// Hide all tab content sections 166 //tabRegionContent.classList.remove('active'); 167 //tabCourtContent.classList.remove('active'); 168 169 //// Activate the clicked tab button 170 //const clickedButton = document.querySelector(`.tab-button[data-tab="${tabId}"]`); 171 //if (clickedButton) { 172 // clickedButton.classList.add('active'); 173 //} 174 175 //// Show the corresponding tab content 176 //const targetContent = document.getElementById(`tab-${tabId}`); // Dynamically get the ID 177 //if (targetContent) { 178 // targetContent.classList.add('active'); 179 //} 180 } 181 182 // Add click event listeners to tab buttons 183 tabButtons.forEach(button => { 184 button.addEventListener('click', () => { 185 const tabId = button.dataset.tab; // Gets 'region' or 'court' 186 switchTab(tabId); 187 }); 188 }); 189 190 // Initialize: Show the default active tab (e.g., 'region') on page load 191 // This ensures one tab is always visible when the page first loads. 192 switchTab('region'); 193 194 195 // --- Number Counter Logic --- 196 const counterElement = document.getElementById('counter-number'); 197 const targetNumber = 12345; // Your desired target number 198 const duration = 2000; // Duration of the animation in milliseconds (2 seconds) 199 const steps = 100; // Number of animation steps 200 const increment = targetNumber / steps; 201 let currentNumber = 0; 202 let stepCount = 0; 203 204 205 206 // Start the counter animation when the page loads 207 //animateCounter(); 208 }); 209 210 $(function() { 211 const $bannerContainer = $(".banner-image-right"); 212 const $imageWrapper = $bannerContainer.find(".image-wrapper"); 213 const $images = $imageWrapper.find("a"); 214 const $dotsContainer = $bannerContainer.find(".jtion-bn-right"); 215 const $dots = $dotsContainer.find(".right-bn-jtion"); 216 217 const slideWidth = $bannerContainer.width(); 218 const totalImages = $images.length; 219 let currentIndex = 0; 220 let autoSlideInterval; 221 const autoSlideTime = 3000; 222 const animationSpeed = 300; 223 224 $imageWrapper.prepend($images.last().clone().addClass('cloned')); 225 $imageWrapper.append($images.first().clone().addClass('cloned')); 226 227 $imageWrapper.css('left', -slideWidth); 228 229 230 231 function slideTo(targetIndex) { 232 if ($imageWrapper.is(':animated')) return; 233 234 const targetPosition = -(targetIndex + 1) * slideWidth; 235 236 $imageWrapper.stop(true, true).animate({ left: targetPosition }, { 237 duration: animationSpeed, 238 easing: 'linear', 239 complete: function () { 240 if (targetIndex === totalImages) { 241 // ¸¶Áö¸· ½½¶óÀ̵忡¼ ù ½½¶óÀ̵å·Î ·çÇÁ 242 $imageWrapper.css('left', -slideWidth); 243 currentIndex = 0; 244 } else if (targetIndex === -1) { 245 // ù ½½¶óÀ̵忡¼ ¸¶Áö¸· ½½¶óÀ̵å·Î ·çÇÁ 246 $imageWrapper.css('left', -(totalImages * slideWidth)); 247 currentIndex = totalImages - 1; 248 } else { 249 currentIndex = targetIndex; 250 } 251 updateDots(); 252 } 253 }); 254 } 255 256 257 function moveNext() { 258 let nextIndex = currentIndex + 1; 259 if (nextIndex >= totalImages) { 260 slideTo(totalImages); 261 } else { 262 slideTo(nextIndex); 263 } 264 } 265 266 function updateDots() { 267 $dots.removeClass("check"); 268 $dots.eq(currentIndex).addClass("check"); 269 } 270 271 function startAutoSlide() { 272 clearInterval(autoSlideInterval); 273 autoSlideInterval = setInterval(moveNext, autoSlideTime); 274 } 275 276 function resetAutoSlide() { 277 startAutoSlide(); 278 } 279 //$dots.on("mouseenter", function() { 280 // const slideIndex = $(this).data("slide-index"); 281 // if (slideIndex !== undefined) { 282 // slideTo(slideIndex); 283 // resetAutoSlide(); 284 // } 285 //}); 286 287 //$bannerContainer.on("mouseenter", function() { 288 // clearInterval(autoSlideInterval); 289 //}).on("mouseleave", function() { 290 // resetAutoSlide(); 291 //}); 292 293 updateDots(); 294 startAutoSlide(); 295 }); 296 297 document.addEventListener('DOMContentLoaded', () => { 298 // --- Notice Roller Logic --- 299 const list = document.getElementById("noticeList"); 300 301 if (list) { 302 const items = list.children; 303 const totalOriginal = 3; // IMPORTANT: This should be the number of *unique* notice items 304 const itemHeight = 24;
304 // This should match the height of .notice-item in your CSS 305 let index = 0; // Current item index 306 let timer = null; 307 308 // Function for automatic seamless scrolling 309 function autoScrollNotice() { 310 index++; 311 list.style.transition = 'top 0.6s ease'; // Ensure transition is on for automatic scroll 312 313 if (index >= totalOriginal) { 314 // If we've scrolled past the last original item into its duplicate 315 list.style.top = -(itemHeight * index) + "px"; // Finish the animation to the duplicate 316 317 // After the animation completes, instantly jump back to the first original item 318 setTimeout(() => { 319 list.style.transition = 'none'; // Disable transition for the instant jump 320 index = 0; // Reset index to the first original item's logical position 321 list.style.top = -(itemHeight * index) + "px"; // Instantly reset position 322 }, 600); // This delay must match your CSS transition duration 323 } else { 324 // Normal scroll for original items 325 list.style.top = -(itemHeight * index) + "px"; 326 } 327 } 328 329 // Function for manual scrolling (buttons) 330 function manualScrollNotice(dir) { 331 stopRolling(); // Stop automatic rolling when manually controlled 332 333 list.style.transition = 'top 0.6s ease'; // Always enable transition for manual scroll 334 335 index += dir; 336 337 if (index >= totalOriginal) { 338 // If scrolling down past the last original item 339 index = 0; // Go to the first original item 340 } else if (index < 0) { 341 // If scrolling up past the first original item 342 index = totalOriginal - 1; // Go to the last original item 343 } 344 345 list.style.top = -(itemHeight * index) + "px"; 346 347 // Restart rolling after a short delay (optional, but good for user experience) 348 // You might want to remove this if you want it to stay paused after manual interaction. 349 startRolling(); 350 } 351 352 function startRolling() { 353 clearInterval(timer); // Clear any existing timer 354 timer = setInterval(() => { 355 autoScrollNotice(); // Call the auto-scrolling function 356 }, 3000); // Adjust interval as needed 357 } 358 359 function stopRolling() { 360 clearInterval(timer); 361 } 362 363 // Initialize on page load: set initial position and start rolling 364 list.style.top = "0px"; // Ensure it starts at the very top 365 startRolling(); 366 367 // Mouse interaction: Use the notice-container for events 368 const noticeContainer = document.querySelector('.notice-container'); 369 if (noticeContainer) { 370 noticeContainer.addEventListener("mouseenter", stopRolling); 371 noticeContainer.addEventListener("mouseleave", startRolling); 372 } else { 373 console.error("Error: .notice-container not found."); 374 } 375 376 // Attach click handlers to the buttons 377 // These now call manualScrollNotice 378 const prevButton = document.querySelector('.notice-buttons button:first-child'); 379 const nextButton = document.querySelector('.notice-buttons button:last-child'); 380 381 if (prevButton) { 382 prevButton.onclick = () => manualScrollNotice(-1); 383 } 384 if (nextButton) { 385 nextButton.onclick = () => manualScrollNotice(1); 386 } 387 388 } else { 389 //console.error("Error: #noticeList element not found. Check your HTML ID."); 390 } 391 392 // --- Tab Menu Logic (as provided previously) --- 393 const tabButtons = document.querySelectorAll('.tab-button'); 394 const tabRegionContent = document.getElementById('tab-region'); 395 const tabCourtContent = document.getElementById('tab-court'); 396 397 function switchTab(tabId) { 398 tabButtons.forEach(button => { 399 button.classList.remove('active'); 400 }); 401 if (tabRegionContent) tabRegionContent.classList.remove('active'); 402 if (tabCourtContent) tabCourtContent.classList.remove('active'); 403 404 const clickedButton = document.querySelector(`.tab-button[data-tab="${tabId}"]`); 405 if (clickedButton) { 406 clickedButton.classList.add('active'); 407 } 408 409 const targetContent = document.getElementById(`tab-${tabId}`); 410 if (targetContent) { 411 targetContent.classList.add('active'); 412 } 413 } 414 switchTab('region'); // Initialize default tab 415
416 // --- Number Counter Logic (as provided previously) --- 417 const counterElement = document.getElementById('counter-number'); 418 const targetNumber = 12345; 419 const duration = 2000; 420 const steps = 100; 421 const increment = targetNumber / steps; 422 let currentNumber = 0; 423 let stepCount = 0; 424 425 function animateCounter() { 426 if (stepCount < steps) { 427 currentNumber += increment; 428 if (counterElement) { 429 counterElement.textContent = Math.round(currentNumber).toLocaleString(); 430 } 431 stepCount++; 432 requestAnimationFrame(animateCounter); 433 } else { 434 if (counterElement) { 435 counterElement.textContent = targetNumber.toLocaleString(); 436 } 437 } 438 } 439 animateCounter(); 440 }); 441 442 //Áöµµ°Ë»ö 201908029 443 function opn_search_map(gb){ 444 switch(gb) { 445 case "1" : para = "kyung"; break; 446 case "2" : para = "pre"; break; 447 case "3" : para = "gong"; break; 448 default : para = ""; break; 449 } 450 window.open("/aucmap2/?default_kind="+para,"mapSearch","height=" + screen.height + ",width=" + screen.width + "fullscreen=yes"); 451 } 452 453 454 function route() 455 { 456 window.open("/subscription/popup/map.htm","refund","menubar=no,titlebar=no,scrollbars=yes,resizable=no,Width=930,Height=740"); 457 } 458 459 460$(function() { 461 // --- Àç»ç¿ë °¡´ÉÇÑ ½½¶óÀÌ´õ ÃʱâÈ ÇÔ¼ö --- 462 // ÀÌ ÇÔ¼ö´Â ½½¶óÀÌ´õ¸¦ ¼³Á¤ÇÏÁö¸¸, ÀÚµ¿ ½½¶óÀ̵å´Â ½ÃÀÛÇÏÁö ¾Ê½À´Ï´Ù. 463 function initializeSlider(options) { 464 const { 465 containerSelector, 466 ulSelector, 467 liSelector, 468 animationSpeed, 469 autoSlideIntervalTime, 470 liGap, 471 visibleItemsCount 472 } = options; 473 474 const $container = $(containerSelector); 475 const $slider = $container.find(ulSelector); 476 const $items = $slider.children(liSelector); 477 const numItems = $items.length; 478 479 $slider.removeAttr('style'); 480 481 const itemWidth = $items.length > 0 ? ($items.outerWidth(true) + liGap) : 0; 482 483 const visibleItems = visibleItemsCount; 484 const $scrollWrap = $container.find(".scroll-wrap"); 485 486 let autoSlideInterval; 487 let isAnimating = false; 488 489 if (numItems > visibleItems) { 490 $slider.children('.cloned').remove(); 491 for (let i = 0; i < visibleItems + 1; i++) { 492 $slider.append($items.eq(i % numItems).clone().addClass('cloned')); 493 } 494 for (let i = numItems - 1; i >= numItems - (visibleItems + 1); i--) { 495 $slider.prepend($items.eq(i % numItems).clone().addClass('cloned')); 496 } 497 $slider.css("left", -(itemWidth * (visibleItems + 1))); 498 } else { 499 $slider.children('.cloned').remove(); 500 $slider.css("left", 0); 501 } 502 503 //const $prevButton = $container.find(".btn_prev"); 504 //const $nextButton = $container.find(".btn_next"); 505 506 //const canSlide = numItems > visibleItems; 507 508 //if (!canSlide) { 509 // $prevButton.prop('disabled', true).css('cursor', 'not-allowed'); 510 // $nextButton.prop('disabled', true).css('cursor', 'not-allowed'); 511 //} else { 512 // $prevButton.prop('disabled', false).css('cursor', 'pointer'); 513 // $nextButton.prop('disabled', false).css('cursor', 'pointer'); 514 //} 515 516 //$nextButton.off('click').on('click', function() { 517 // if (!canSlide || $(this).prop('disabled') || isAnimating) return; 518 // moveNext(); 519 // resetAutoSlide(); 520 //}); 521 522 //$prevButton.off('click').on('click', function() { 523 // if (!canSlide || $(this).prop('disabled') || isAnimating) return; 524 // movePrev(); 525 // resetAutoSlide(); 526 //}); 527 528 529 530 function moveNext() { 531 if (!canSlide || isAnimating) return; 532 isAnimating = true; 533 $slider.stop(true, true).animate({ left: `-=${itemWidth}px` }, animationSpeed, function() { 534 const currentLeft = parseInt($slider.css("left")); 535 if (currentLeft <= -(itemWidth * (numItems + visibleItems))) { 536 $slider.css("left", -(itemWidth * (visibleItems + 1))); 537 } 538 isAnimating = false; 539 }); 540 } 541 542 function movePrev() { 543 if (!canSlide || isAnimating) return; 544 isAnimating = true; 545 $slider.stop(true, true).animate({ left: `+=${itemWidth}px` }, animationSpeed, function() { 546 const currentLeft = parseInt($slider.css("left")); 547 if (currentLeft >= -(itemWidth * visibleItems)) { 548 $slider.css("left", -(itemWidth * numItems)); 549 } 550 isAnimating = false; 551 }); 552 } 553 554 function startAutoSlide() { 555 if (!canSlide || $nextButton.prop('disabled')) return; 556 autoSlideInterval = setInterval(moveNext, autoSlideIntervalTime); 557 } 558 559 function stopAutoSlide() { 560 clearInterval(autoSlideInterval); 561 } 562 563 function resetAutoSlide() { 564 if (!canSlide) return; 565 stopAutoSlide(); 566 startAutoSlide(); 567 } 568 569 let activeSliderScrollWrap = null; 570 let gestureStartX = 0; 571 let sliderStartLeft = 0; 572 const swipeThreshold = 50; 573 574 //$scrollWrap.on("mousedown touchstart", function(e) { 575 // if (!canSlide || isAnimating) return; 576 // stopAutoSlide(); 577 578 // const clientX = e.originalEvent.touches ? e.originalEvent.touches[0].clientX : e.clientX; 579 580 // isAnimating = true; 581 // gestureStartX = clientX; 582 // sliderStartLeft = parseInt($slider.css("left")); 583 584 // $slider.stop(true, true); 585 586 // if (e.type === "mousedown") { 587 // e.preventDefault(); 588 // $(this).css('cursor', 'grabbing'); 589 // } 590 591 // activeSliderScrollWrap = this; 592 //}); 593 594 //$(document).on("mousemove touchmove", function(e) { 595 // if (!activeSliderScrollWrap || !isAnimating) return; 596 597 // if (e.type === "touchmove") { 598 // e.preventDefault(); 599 // } 600 601 // const clientX = e.originalEvent.touches ? e.originalEvent.touches[0].clientX : e.clientX; 602 // const gestureDistX = clientX - gestureStartX; 603 // $slider.css("left", sliderStartLeft + gestureDistX + "px"); 604 //}); 605 606 //$(document).on("mouseup touchend", function(e) { 607 // if (!activeSliderScrollWrap || !isAnimating) return; 608 609 // if (e.type === "mouseup") { 610 // $(activeSliderScrollWrap).css('cursor', 'grab'); 611 // } 612 613 // const gestureDistX = parseInt($slider.css("left")) - sliderStartLeft; 614 615 // if (Math.abs(gestureDistX) < swipeThreshold) { 616 // $slider.animate({ left: sliderStartLeft + "px" }, animationSpeed, function() { 617 // resetAutoSlide(); 618 // }); 619 // } else { 620 // if (gestureDistX < 0) { 621 // moveNext(); 622 // } else { 623 // movePrev(); 624 // } 625 // resetAutoSlide(); 626 // } 627 628 // isAnimating = false; 629 // activeSliderScrollWrap = null; 630 //}); 631 632 //// ÀνºÅϽº µ¥ÀÌÅ͸¦ scrollWrap¿¡ ÀúÀå 633 //$scrollWrap.data('sliderInstance', { 634 // $slider: $slider, 635 // numItems: numItems, 636 // visibleItems: visibleItems, 637 // itemWidth: itemWidth, 638 // animationSpeed: animationSpeed, 639 // autoSlideIntervalTime: autoSlideIntervalTime, 640 // canSlide: canSlide, 641 // resetAutoSlide: resetAutoSlide, 642 // startAutoSlide: startAutoSlide, 643 // stopAutoSlide: stopAutoSlide, 644 // moveNext: moveNext, 645 // movePrev: movePrev 646 //}); 647 } 648 649 // --- °¢ ½½¶óÀÌ´õ ÀνºÅϽº ÃʱâÈ --- 650 // ¸ÕÀú ¸ðµç ½½¶óÀÌ´õ¸¦ Ãʱâȸ¸ ÇÕ´Ï´Ù. 651 initializeSlider({ 652 containerSelector: ".partner-academy", 653 ulSelector: ".partner-academy-ul", 654 liSelector: ".partner-academy-li", 655 animationSpeed: 300, 656 autoSlideIntervalTime: 3000, 657 liGap: 16, 658 visibleItemsCount: 4 659 });
660 661 initializeSlider({ 662 containerSelector: ".partner-class", 663 ulSelector: ".partner-class-ul", 664 liSelector: ".partner-class-li", 665 animationSpeed: 300, 666 autoSlideIntervalTime: 3000, 667 liGap: 16, 668 visibleItemsCount: 4 669 }); 670 671 // --- ½½¶óÀÌ´õ ÀÚµ¿ ½ºÅ©·Ñ ¼ø¼ Á¦¾î --- 672 // ÀÌÁ¦ ÃʱâÈµÈ ½½¶óÀÌ´õ¸¦ ¿øÇÏ´Â ¼ø¼´ë·Î ½ÃÀÛÇÕ´Ï´Ù. 673 674 // 1. ¸ÕÀú ¿òÁ÷ÀÏ ½½¶óÀÌ´õ (partner-academy) ÀÚµ¿ ½½¶óÀÌµå ½ÃÀÛ (Áï½Ã) 675 const $academyScrollWrap = $(".partner-academy").find(".scroll-wrap"); 676 const academyData = $academyScrollWrap.data('sliderInstance'); 677 if (academyData && academyData.canSlide) { 678 academyData.startAutoSlide(); 679 } 680 681 // 2. ³ªÁß¿¡ ¿òÁ÷ÀÏ ½½¶óÀÌ´õ (partner-class) ÀÚµ¿ ½½¶óÀÌµå µô·¹ÀÌ ½ÃÀÛ 682 const delayBeforeClassStarts =1000; 683 684 setTimeout(() => { 685 const $classScrollWrap = $(".partner-class").find(".scroll-wrap"); 686 const classData = $classScrollWrap.data('sliderInstance'); 687 if (classData && classData.canSlide) { 688 classData.startAutoSlide(); 689 } 690 }, delayBeforeClassStarts); 691});
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.