$(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');
}
});