$(document).ready(function () { // 메뉴바 그림자 적용 (부트스트랩 3의 Affix) $('#mainNavbar').affix({ offset: { top: 40 } }); // 스크롤 애니메이션 $('li a[href*=#]').on("click", function (e) { var anchor = $(this); var targetHash = anchor.attr('href').split('#')[1]; // 해시 부분만 추출 var currentPage = window.location.pathname + window.location.search; // 현재 페이지 경로와 쿼리 스트링 포함 // 같은 페이지 내에서 해시로 스크롤을 처리하는 경우 if (anchor[0].pathname + anchor[0].search === currentPage) { e.preventDefault(); // 기본 동작을 막고 스크롤 애니메이션 실행 var target = $('#' + targetHash); // 해시 값으로 대상 찾기 if (target.length) { $('html, body').stop().animate({ scrollTop: target.offset().top - 136 }, 700); } } // 다른 페이지로 이동하는 경우 기본 동작 허용 }); // 이미지 소스 업데이트 $("img").each(function () { var currentSrc = $(this).attr("src"); var updatedSrc = currentSrc; // 기본값은 현재 소스로 설정 switch (currentSrc) { case "/cimg/arr_page_go.gif": updatedSrc = "../img/vdata/inc/images/par1.png"; break; case "/cimg/arr_page_next.gif": updatedSrc = "../img/vdata/inc/images/par2.png"; break; case "/cimg/arr_page_back.gif": updatedSrc = "../img/vdata/inc/images/pal1.png"; break; case "/cimg/arr_page_pre.gif": updatedSrc = "../img/vdata/inc/images/pal2.png"; break; } $(this).attr("src", updatedSrc); }); // 텍스트 애니메이션 $(".mstx-inw").hide().fadeIn(1000); // 네비게이션 토글 버튼 클릭 이벤트 $(".navbar-toggle").on("click", function () { $(this).toggleClass("active disabledn2n"); $("nav").toggleClass("navbar-yellow"); // 클래스 제거 딜레이 설정 setTimeout(function () { $(this).removeClass("disabledn2n"); }.bind(this), 500); toggleLogo(); }); // AOS 초기화 (스크롤 애니메이션 라이브러리) AOS.init({ duration: 650, offset: 120, delay: 100, easing: 'ease-out-quad', once: true, mirror: false }); // 동적 지연 효과 추가 var animationOffset = 100; var startDelay = 0; $(window).on('scroll', function () { $('.aos-element').each(function (index) { var elementOffset = $(this).offset().top; var scrollTop = $(window).scrollTop(); var windowHeight = $(window).height(); if (scrollTop + windowHeight > elementOffset) { var delay = startDelay + (index * animationOffset); $(this).attr('data-aos-delay', delay); } }); AOS.refresh(); }); // 로고 이미지 변경 함수 function changeLogo(newSrc) { var $icon = $('.logo-pdf'); var currentSrc = $icon.attr('src'); if (currentSrc !== newSrc) { $icon.fadeOut(5, function () { $icon.attr('src', newSrc).fadeIn(5); }); } } // 스크롤 이벤트 핸들러 function handleScroll() { var scrollTop = $(window).scrollTop(); var isCollapseOpen = $('.navbar-collapse').hasClass('in'); if (scrollTop > 100) { $('.scroll-up').fadeIn(); } else { $('.scroll-up').fadeOut(); } changeLogo(isCollapseOpen || scrollTop > 0 ? '../img/vdata/images/logo_ov.png' : '../img/vdata/images/logo.png'); if (scrollTop === 0) { $('.snbin').css('background-color', '#474747'); $('.snbin:first').css('background-color', '#ff6600'); } } $(window).on('scroll', handleScroll); // 네비게이션 collapse 상태 변화 감지 $('.navbar-collapse').on('hidden.bs.collapse shown.bs.collapse', function () { changeLogo($(this).hasClass('in') ? '../img/vdata/images/logo_ov.png' : '../img/vdata/images/logo.png'); }); // Owl Carousel 설정 $('.slider-active, .bb-area').each(function () { var $this = $(this); var config = { items: 1, loop: true, autoplay: true, autoplayTimeout: 6000, smartSpeed: 1500, dots: true, nav: false, responsiveRefreshRate: 0, responsiveClass: true, responsive: { 0: { items: 1, dots: false, nav: false }, 480: { items: 1, dots: false, nav: false }, 768: { items: 1, nav: false }, 992: { items: 1 } } }; if ($this.hasClass('bb-area')) { $.extend(config, { nav: true, smartSpeed: 700, navText: [ '', '' ] }); } else { config.animateOut = 'fadeOut'; } $this.owlCarousel(config); }); // 추가 애니메이션 및 숫자 카운터 $(".slider-taxt").hide().fadeIn(1000); $("#no-fouc").delay(170).animate({ "opacity": "1" }, 170); $(".looo").fadeOut("fast"); var $counters = $(".counter"); var exposurePercentage = 100; var duration = 1700; var addCommas = true; function updateCounter($el, start, end) { var startTime = null; function animateCounter(timestamp) { if (!startTime) startTime = timestamp; var progress = (timestamp - startTime) / duration; var current = Math.round(start + progress * (end - start)); var formattedNumber = addCommas ? current.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") : current; $el.text(formattedNumber); if (progress < 1) { window.requestAnimationFrame(animateCounter); } else { $el.text(addCommas ? end.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") : end); } } window.requestAnimationFrame(animateCounter); } $(window).on('scroll', function () { $counters.each(function () { var $el = $(this); if (!$el.data('scrolled')) { var rect = $el[0].getBoundingClientRect(); var winHeight = $(window).height(); var contentHeight = rect.bottom - rect.top; if (rect.top <= winHeight - (contentHeight * exposurePercentage / 100) && rect.bottom >= (contentHeight * exposurePercentage / 100)) { var start = parseInt($el.data("start"), 10); var end = parseInt($el.data("end"), 10); updateCounter($el, start, end); $el.data('scrolled', true); } } }); }).scroll(); // 로고 토글 함수 정의 function toggleLogo() { var isCollapseOpen = $('.navbar-collapse').hasClass('in'); changeLogo(isCollapseOpen ? '../img/vdata/images/logo_ov.png' : '../img/vdata/images/logo.png'); } });