$(function() { 'use strict'; // global resolution variable var $resolution_pc = 1200; // PC 분기점 (min-width 기준) var $resolution_tablet = 992; // 태블릿 분기점 (min-width 기준) var $resolution_mobile = 768; // 모바일 분기점 (min-width 기준) // init aos_init(); main_hero_init(); main_about_swiper(); main_greeting_swiper(); main_facility_swiper(); quickmenu_init(); navigation_init(); parallax_init(); navi_init(); // footer_init(); objectFitImages(); about_slide_init(); doctor_slide_init(); // scroll handler $(window).on('scroll', function() { header_scroll(); animate_bg_init(); // subhero_scroll(); }).scroll(); // page loading function page_load_complete() { var $loader = $('#page-loader'); $loader.find('.loader').fadeOut('slow', function() { setTimeout(function() { $loader.fadeOut('slow'); }, 100); }); } // AOS function aos_init() { AOS.init({ once: true }); } // main hero init function main_hero_init() { var $hero = $('.main-hero-section .hero'); if ( $hero.length ) { var $interval = ( $hero.data('interval') ) ? $hero.data('interval') : 4000; $hero.on('init', function(event, slick) { $hero.find('.slick-current').removeClass('slick-active').addClass('reset-animation'); setTimeout(function() { $hero.find('.slick-current').removeClass('reset-animation').addClass('slick-active'); }, 1); }); $hero.slick({ autoplay: true, autoplaySpeed: $interval, speed: 600, arrows: true, dots: true, lazyLoad: 'ondemand', prevArrow: '', nextArrow: '' }); } } // main about swiper init function main_about_swiper() { if ( !$('.main-about-section .about-swiper').length ) return; var swiper = new Swiper('.main-about-section .about-swiper', { slidesPerView: 1.1, spaceBetween: 25, autoplay: { delay: 3000, disableOnInteraction: false, }, loop: true, navigation: { nextEl: '.main-about-section .button-next', prevEl: '.main-about-section .button-prev', }, breakpoints: { 768: { slidesPerView: 2, spaceBetween: 28, }, 992: { slidesPerView: 3, spaceBetween: 28, } } }); } // main greeting swiper init function main_greeting_swiper() { if ( !$('.main-greeting-section .greeting-swiper').length ) return; var swiper = new Swiper('.main-greeting-section .greeting-swiper', { effect: 'fade', fadeEffect: { crossFade: true }, autoplay: { delay: 4000, disableOnInteraction: false, }, loop: true, navigation: { nextEl: '.main-greeting-section .button-next', prevEl: '.main-greeting-section .button-prev', } }); } // main facility swiper init function main_facility_swiper() { if ( !$('.main-facility-section .facility-img-swiper').length || !$('.main-facility-section .facility-label-swiper').length ) return; var imgSwiper = new Swiper('.main-facility-section .facility-img-swiper', { spaceBetween: 14, speed: 600, autoplay: { delay: 4000, disableOnInteraction: false, }, loop: true, navigation: { nextEl: '.main-facility-section .button-next', prevEl: '.main-facility-section .button-prev', }, breakpoints: { 768: { spaceBetween: 57, } } }); var labelSwiper = new Swiper('.main-facility-section .facility-label-swiper', { effect: 'fade', fadeEffect: { crossFade: true }, loop: true }); imgSwiper.controller.control = labelSwiper; labelSwiper.controller.control = imgSwiper; } // quickmenu init function quickmenu_init() { $('#quickmenu .button-top').on('click', function(e) { $('html, body').stop().animate({ scrollTop: 0 }, 600, 'easeInOutCubic'); }); } // navigation init function navigation_init() { var $header = $('#header'); var $gnb = $('#header .gnb'); var $sidenav = $('#header .side-nav'); var $openBtn = $header.find('.btn-nav-open'); var $closeBtn = $header.find('.btn-nav-close'); var $navDimmed = $header.find('.nav-dimmed'); var $originalHeight = []; $gnb.find('.menu-items > li').each(function() { $originalHeight.push($(this).find('.subnav-wrap').outerHeight()); }); $gnb.find('.subnav-wrap').height(0); $gnb.find('.menu-items > li').on('mouseenter', function() { $(this).find('.subnav-wrap').stop(true, true).css({visibility:'visible', opacity:0}).animate({'height': $originalHeight[$(this).index()], 'opacity':1}, 350, 'easeOutCubic'); }).on('mouseleave', function() { $gnb.find('.subnav-wrap').stop(true, true).animate({'height':0, 'opacity':0}, 200, function() { $(this).css({visibility:'hidden'}); }); }); $sidenav.find('.menu-items > li').each(function() { if ( $(this).find('.subnav').length ) $(this).addClass('has-child-menu'); }); function nav_open() { $('body').addClass('nav-is-open'); $navDimmed.stop().fadeIn(350); } function nav_close() { $('body').removeClass('nav-is-open'); $navDimmed.stop().fadeOut(350); } $openBtn.on('click', function() { nav_open(); }); $closeBtn.on('click', function() { nav_close(); }); $navDimmed.on('click', function() { nav_close(); }); $sidenav.find('.menu-items > li > a').on('click', function(e) { if ( $(this).siblings('.subnav').length ) { e.preventDefault(); if ( !$(this).parent().hasClass('is-open') ) { $sidenav.find('.menu-items > li.is-open').removeClass('is-open'); $sidenav.find('.subnav').stop().slideUp(300); $(this).parent().addClass('is-open'); $(this).siblings('.subnav').stop().slideDown(300); } else { $(this).parent().removeClass('is-open'); $(this).siblings('.subnav').stop().slideUp(300); } } }); } // sticky header function header_scroll() { var $header = $('#header'); var $scrTop = $(window).scrollTop(); if ( $scrTop >= $header.outerHeight() ) { if ( !$header.hasClass('sticky') ) $header.addClass('sticky'); } else { $header.removeClass('sticky'); } } // footer init /* function footer_init() { var $footer_size = $('#footer').outerHeight(); $('.footer-spacer').height($footer_size); } */ $('#footer .col-sitemap dl dt a').on('click', function(e) { var $winWidth = $(window).width(); if ( $winWidth < $resolution_mobile ) { if ( $(this).parent().next('dd').find('ul').length ) { e.preventDefault(); if ( !$(this).closest('dl').hasClass('is-open') ) { $('#footer .col-sitemap dl').removeClass('is-open'); $('#footer .col-sitemap dl dd').stop().slideUp(300); $(this).closest('dl').addClass('is-open'); $(this).parent().next('dd').stop().slideDown(300); } else { $(this).closest('dl').removeClass('is-open'); $(this).parent().next('dd').stop().slideUp(300); } } } }); // main skills progressbar function animate_progress_bar() { $('.progress-group').each(function() { var $percentage = $(this).data('percentage'); var $beforeCount = ($(this).find('.percent-text').text() == '') ? 0 : $(this).find('.percent-text').text(); $(this).addClass('active'); $(this).find('.percent-text').each(function() { var $this = $(this); $({Counter: $beforeCount}).animate({Counter: $percentage}, { duration: 2000, easing: 'swing', step: function() { $this.text(Math.ceil(this.Counter)); } }); }); $(this).find('.percent').stop().animate({left: $percentage + '%'}, 2000); $(this).find('.progress-wrap .bar').stop().animate({width: $percentage + '%'}, 2000); }); } if ( $('.progress-group').length ) { var waypoint = new Waypoint({ element: $('.progress-group'), handler: function(direction) { animate_progress_bar(); }, offset: '100%' }); } // animated background effect function animate_bg_init() { var $elem = $('.animated-bg'); $elem.length && $elem.each(function() { var $this = $(this), $size = $this.outerHeight(), $pos = $this.offset().top, $calc = $size + $pos, $scrollTop = $(window).scrollTop(), $winHeight = $(window).outerHeight(), $areaStart = $pos - $winHeight, $areaEnd = $calc - $size / 2 - $winHeight / 2, $factor = 0; if ( $scrollTop >= $areaStart && $scrollTop <= $areaEnd ) { var $scale = ($scrollTop - $areaStart) / ($areaEnd - $areaStart); $factor = 0.7 + 0.3 * $scale, $factor >= 0.98 ? $factor = 1 : $factor < 0.7 && ($factor = 0.3), $this.css({ transform: 'matrix(' + $factor + ', 0, 0, 1, 0, 0)' }); } }); } // main review slider $(document).ready(function() { if ( $('.main-animate-section02 .review-slider').length ) { $('.main-animate-section02 .review-slider').slick({ dots: true, arrows: false, speed: 600, adaptiveHeight: true }); } }); // main map function $(document).ready(function() { var $main_map = $('.main-map-section'); var $body = $('body'); $main_map.append($main_map.find('.visible-map').clone().removeClass('visible-map').addClass('hide-map')); $('.main-map-section .btn-detail').on('click', function(e) { e.preventDefault(); $body.addClass('fold-map'); setTimeout(function() { $body.addClass('fixed-map'); }, 450); }); $('.main-map-section .btn-close').on('click', function() { $body.removeClass('fixed-map'); setTimeout(function() { $body.removeClass('fold-map'); }, 450); }); }); // dropdown init function navi_init() { var $gnb = $('#header .gnb'); var $dropdown = []; var $url = $(location).attr('href'); var $idx_main = 0; var $idx_sub = 0; var $dropdown_html = []; $('.dropdown-nav-section .dropdown-wrap').each(function(i) { $dropdown[i] = $(this); i++; }); $gnb.find('.menu-items').children().each(function() { var $this = $(this); if ( $url.indexOf($(this).find('>a').attr('href')) > -1 ) { $idx_main = $(this).index(); $(this).addClass('is-active is-open'); $(this).find('.subnav').show(); } $this.find('.subnav > li').each(function() { if ( $url.indexOf($(this).find('>a').attr('href')) > -1 ) { $idx_main = $(this).parent().closest('li').index(); $idx_sub = $(this).index(); $(this).parent().addClass('is-active'); $(this).parent().closest('li').addClass('is-active'); } }); }); if ( $('.dropdown-nav-section .dropdown-wrap').length ) { $dropdown_html[0] = ''; $dropdown_html[1] = ''; $gnb.find('.menu-items').children().each(function() { var $link = $(this).find('>a').attr('href'); var $name = $(this).find('>a').text(); $dropdown_html[0] += '