/* ------------------------------------------- * @init ------------------------------------------- */ $(function () { var u = new EPOS_CARD.Util(); $.cookieSetDesignCard(); $.headerMenu(); $.textMove(); $.heral_smoothScroll(); $.heral_accordion(); $.mapChange(); $.slider(); $.headerImageSlider(); $.cardImageSlider(); $.sideMenuSticky(); $.heral_modal(); $(window).on('load', function (){ // 画像が完全に読み込まれてからクローンを作成 // さらに少し遅延させて、レンダリングが完了してから実行 setTimeout(function(){ $.motionPictureLoop(); }, 100); }); }); (function($){ var u = new EPOS_CARD.Util(); /* * cookieSetDesignCard */ $.cookieSetDesignCard = function(){ var COOKIE_DOMAIN = location.host.indexOf(".eposcard.co.jp")!==-1 ? ".eposcard.co.jp" : location.host; $('.js-designCardLink').click(function(){ var self = $(this), cardNumber = '0' + $(this).attr('name'); document.cookie = "selecteddesignno-cardapply_form01=; max-age=0; path=/"; document.cookie = "selectedstdcard-cardapply_form01=; max-age=0; path=/"; document.cookie = "selecteddirection-cardapply_form01=; max-age=0; path=/"; document.cookie = "jump_designcardList=; max-age=0; path=/"; if(self.data('direction') == 'vertical') { $.cookie("selecteddirection-cardapply_form01", 'vertical', {domain:COOKIE_DOMAIN , expires: 30, path: "/"}); } else if (self.data('direction') == 'horizontal') { $.cookie("selecteddirection-cardapply_form01", 'horizontal', {domain:COOKIE_DOMAIN , expires: 30, path: "/"}); } $.cookie("selecteddesignno-cardapply_form01", cardNumber, {domain:COOKIE_DOMAIN , expires: 30, path: "/"}); $.cookie('selectedstdcard-cardapply_form01', 'classic' ,{domain:COOKIE_DOMAIN , expires: 30, path: "/"}); $.cookie('jump_designcardList', '1' ,{domain:COOKIE_DOMAIN , expires: 30, path: "/"}); }); } /* * headerMenu */ $.headerMenu = function(config){ // vars var c = $.extend({ elm: "js-headerMenu", button: "js-headerMenuButton", openClass: "is-open", menuClass: "on-menu", speed: 300 }, config); var $elm = $("." + c.elm), $button = $("." + c.button), $anchorLink = $("." + c.elm + " a[href^='#']"), click = true; if($elm.length === 0){ return false; } var menuAction = function() { if(click) { click = false; $elm.addClass(c.menuClass); $elm.toggleClass(c.openClass); setTimeout(function() { $elm.removeClass(c.menuClass).stop(); click = true; },1000); } }; $button.on('click', function(){ menuAction() }); $anchorLink.not('a[href=#], a[href^=#tab], a[href^=#modal]').on('click', function() { menuAction() }); } /* * textMove */ $.textMove = function(config){ // vars var c = $.extend({ elm: "js-textMove", item: "js-textMoveItem", target: "js-textMoveTarget" }, config); var $elm = $("." + c.elm), $item = $("." + c.item), $target = $("." + c.target); if($elm.length === 0 || $target.length === 0){ return false; } var fixedClass = 'is-fixed', textPosition = $elm.offset().top - 40, targetPosition = $target.offset().top + 60; $(window).on('scroll', function(){ if(u.isRangeSP()) { var scrollTop = $(window).scrollTop(); if(targetPosition > scrollTop && scrollTop > textPosition) { $item.addClass(fixedClass); $item.css('top', '10vw'); } else if(scrollTop >= targetPosition ) { $item.removeClass(fixedClass); $item.css('top',targetPosition - textPosition); } else if (textPosition > scrollTop) { $item.removeClass(fixedClass); $item.css('top', '0'); } } }); }; /* * mapChange */ $.mapChange = function(config){ // vars var c = $.extend({ elm: "js-mapChangeNav", item: "js-mapChangeAccordion", image: "js-mapChangeImage" }, config); var $elm = $("." + c.elm), $item = $("." + c.item), $target = $("." + c.elm + " a"), $image = $("." + c.image), click = true, activeClass = 'is-active'; if($elm.length === 0){ return false; } $item.hide(); $("." + c.item + "." + activeClass).show(); $target.on('click', function() { var self = $(this), href = self.attr('href'), name = href.substr(1), num = href.slice(-2); if(click) { if(!self.hasClass(activeClass)) { click = false; $target.removeClass(activeClass); self.addClass(activeClass); var imagePath = '/designcard/heralbony/img-files/index_im05-'; $image.fadeOut(500, function() { $image.attr('src',imagePath+num+'.jpg'); $image.fadeIn(500); }) $item.removeClass(activeClass); $item.fadeOut(500, function() { $("." + c.item + "#" + name).addClass(activeClass); setTimeout(function(){ $("." + c.item + "#" + name).fadeIn(); },500); }) setTimeout(function(){ click = true; },1000); } } return false; }) }; /* * @method smoothScroll * - スムーススクロール */ $.heral_smoothScroll = function(config){ var c = $.extend({ speed: 300, easing: "swing", noScrollClass: ".heral-noScroll" }, config); /* vars ------------------------------- */ var url = $(location).attr("href"), hash = location.hash, headerheight = $('#header').innerHeight(), href, target, position; /* trigger ------------------------------- */ /* ページ遷移+アンカー移動制御 */ u.$win.load(function(){ if((url.indexOf("#anc") !== -1)||(url.indexOf("#info_anchor") !== -1)){ target = $(hash); position = target.offset().top - headerheight; $("html, body").animate({ scrollTop: position }, c.speed, c.easing); } }); /* スクロール制御 */ $("a[href^=#]").not("a[href=#], a[href^=#tab], a[href^=#area], a[href^=#modal], " + c.noScrollClass + "").click(function(){ href = $(this).attr("href"); target = $(href); position = target.offset().top - headerheight; if(u.isRangeSP()){ $("html, body").animate({ scrollTop: position }, c.speed, c.easing); } else { $("html, body").animate({ scrollTop: position }, c.speed, c.easing); } return false; }); }; $.heral_accordion = function(){ var settings = { 'toggle01': { elm: ".js-heral-toggleWrap01", trigger: ".js-heral-toggleTrigger01", target: ".js-heral-toggleContent01", speed: 300, openNm: "is-open" }, 'toggle02': { elm: ".js-heral-toggleWrap02", trigger: ".js-heral-toggleTrigger02", target: ".js-heral-toggleContent02", speed: 300, openNm: "is-open" } }; for(const key in settings){ EPOS_CARD.module.accordion(settings[key]); } }; $.slider = function(config){ var c = $.extend({ sliderName: ".js-slider", pagerCurrentClassName: ".current", pagerTotalClassName: ".total", trigger: ".js-sliderTrigger" }, config); var $elm = $(c.sliderName), $trigger = $(c.trigger); if($elm.length === 0){ return false; } var slick = $elm.each(function(){ var $this = $(this); $this.on('init', function(event, slick) { $this.append('
/
'); $(c.pagerCurrentClassName, $this).text(slick.currentSlide + 1); $(c.pagerTotalClassName, $this).text(slick.slideCount); }) .slick({ autoplay: false, variableWidth: true, centerMode: true, pauseOnFocus: false, pauseOnHover: false, speed: 300, arrows:true, dots: false, }) .on('beforeChange', function(event, slick, currentSlide, nextSlide) { //ページャー制御 $(c.pagerCurrentClassName, $this).text(nextSlide + 1); }); }); $trigger.on('click', function() { slick.slick('setPosition'); }) } /* * headerImageSlider */ $.headerImageSlider = function(config){ // vars var c = $.extend({ interval: 750 // 0.75秒 }, config); var $items = $('.headerMenu-ImageItem'); if($items.length === 0){ return false; } var currentIndex = 0; var totalImages = $items.length; // 最初の画像を表示 $items.eq(0).addClass('is-active'); // 画像を切り替える関数 var changeImage = function() { $items.eq(currentIndex).removeClass('is-active'); currentIndex = (currentIndex + 1) % totalImages; $items.eq(currentIndex).addClass('is-active'); }; // インターバルで画像を切り替え setInterval(changeImage, c.interval); } /* * cardImageSlider */ $.cardImageSlider = function(config){ // vars var c = $.extend({ interval: 3000 // 3秒 }, config); var $items = $('.heral-mainVisualCatchCopyCard li'); if($items.length === 0){ return false; } var currentIndex = 0; var totalImages = $items.length; // 最初の画像を表示 $items.eq(0).addClass('is-active'); // 画像を切り替える関数 var changeImage = function() { $items.eq(currentIndex).removeClass('is-active'); currentIndex = (currentIndex + 1) % totalImages; $items.eq(currentIndex).addClass('is-active'); }; // インターバルで画像を切り替え setInterval(changeImage, c.interval); } /* * motionPictureLoop */ $.motionPictureLoop = function(){ var $tracks = $('.heral-motionPictureTrack'); if($tracks.length === 0){ return false; } $tracks.each(function(){ var $track = $(this); var $originalItems = $track.children('.heral-motionPictureItem'); // 1回クローン(合計200% = 元100% + クローン100%) // これにより -50% 移動で正確にループ $originalItems.clone().appendTo($track); }); // 全てのクローン作成後、ブラウザのレンダリングが完了してからアニメーションを開始 requestAnimationFrame(function(){ requestAnimationFrame(function(){ $tracks.addClass('is-ready'); }); }); } /* * sideMenuSticky - スクロール固定メニュー (SP only) */ $.sideMenuSticky = function(){ if ($(window).width() > 750) return; // PC版では実行しない var $sideMenuList = $('.heral-sideMenuList'); var $header = $('#header'); var $mainImage = $('.heral-mainImage'); if ($sideMenuList.length === 0 || $mainImage.length === 0) return; $(window).on('scroll', function(){ var scrollTop = $(window).scrollTop(); var headerHeight = $header.outerHeight(); var mainImageBottom = $mainImage.offset().top + $mainImage.outerHeight(); // ヘッダーの下端とheral-mainImageの下端が重なったら固定 if (scrollTop + headerHeight >= mainImageBottom) { $sideMenuList.addClass('is-fixed'); } else { $sideMenuList.removeClass('is-fixed'); } }); } /* * heral_modal - モーダル処理 */ $.heral_modal = function(config){ var c = $.extend({ elm: ".js-modal" }, config); var $elm = $(c.elm); if($elm.length === 0){ return false; } // colorboxの初期化 if(!u.isRangeSP()){ $elm.colorbox({ inline: true, width: "100%", maxWidth: "1100px", maxHeight: "92%", fixed: true }); } else { $elm.colorbox({ inline: true, height: "", maxWidth: "100%", maxHeight: "100%", fixed: true }); } } })(jQuery);