/********************************************* * finc.js * ------------------------------------------- * @init *********************************************/ /* ------------------------------------------- * @init ------------------------------------------- */ /* ------------------------------------------- * @init ------------------------------------------- */ j$(function(){ var u = new EPOS_CARD.Util(); j$.floating(); j$.finc_modal(); j$.finc_accordion01(); j$.finc_accordion02(); j$.accordionAnchor(); j$(window).on('load',function(){ j$.fincTabs(); j$.finc_accordion03(); }); }); /* ------------------------------------------- * @plugin ------------------------------------------- */ (function(j$){ var u = new EPOS_CARD.Util(); /* * @plugin - floating */ j$.floating = function(){ var c = j$.extend({ typeLogout: ".longLogo.login", typeLogIn: ".longLogo.logout", expiration: 60 // 有効期限(日) }); // cookie取得関数 function getCookie(c_name){ var st = ""; var ed = ""; if(document.cookie.length>0){ // クッキーの値を取り出す st = document.cookie.indexOf(c_name + "="); if(st !== -1){ st = st+c_name.length+1; ed = document.cookie.indexOf(";",st); if(ed === -1) { ed=document.cookie.length; } // 値をデコードして返す return unescape(document.cookie.substring(st,ed)); } } return ""; } /* vars -------------------------------------------------- */ var $target_Out = $(".longLogo.login"), $target_In = $(".longLogo.logout"); if($target_Out.length === 0){ return false; } $target_Out.hide(); $target_In.hide(); /* 会員cookieが無ければログアウトバナーを表示 */ if(getCookie("esc_if") === ""){ $target_Out.show(); } else { $target_In.show(); } }; /* * @plugin - finc_modal */ j$.finc_modal = function(){ var c = j$.extend({ elm_inl: ".cb-finc_inline", customClose: ".cb_close", CLOSE_HTML: '
' }); var $elm_inl = j$(c.elm_inl), $close = j$(c.customClose); // インラインモーダル $elm_inl.colorbox({ inline: true, maxWidth: "100%", maxHeight: "100%", fixed: true, onComplete: function(){ EPOS_CARD.module.equalHeight(true, true); EPOS_CARD.module.sizeFix(); } }); $close.on("click",function(){ j$.colorbox.close(); }); }; /** * @plugin accordion */ j$.finc_accordion01 = function(){ var c = { elm: ".toggleWrap01", trigger: ".toggleTrigger01", target: ".toggleContent01", speed: 300, openNm: "open" }; // vars var $elm = j$(c.elm), $trg = j$(c.trigger); if($elm.length === 0){ return false; } // setting j$(c.target).not("." + c.openNm).hide(); // trigger $trg.on("click",function(){ var self = j$(this), $wrap = self.parents(c.elm), $target = $wrap.find(c.target); if(self.hasClass(c.openNm)){ self.removeClass(c.openNm); $target.stop().slideUp(c.speed); } else { self.addClass(c.openNm); $target.stop().slideDown(c.speed); EPOS_CARD.module.equalHeight(true, true); EPOS_CARD.module.sizeFix(); } }); }; j$.finc_accordion02 = function(){ var c = { elm: ".toggleWrap02", trigger: ".toggleTrigger02", target: ".toggleContent02", openNm: "open", sub_target01: ".sub_toggleContent02-1", sub_target02: ".sub_toggleContent02-2" }; // vars var $elm = j$(c.elm), $trg = j$(c.trigger), $sub_target01 = j$(c.sub_target01), $sub_target02 = j$(c.sub_target02); if($elm.length === 0){ return false; } // setting if(j$(c.target).hasClass("." + c.openNm)){ $sub_target01.hide() j$('#pageTopBtn').removeClass('up'); }else{ j$(c.target).hide(); $sub_target02.hide(); j$('.floatingClose').click(); } // trigger $trg.on("click",function(){ var self = j$(this), $wrap = self.parents(c.elm), $target = $wrap.find(c.target); if(self.hasClass(c.openNm)){ self.removeClass(c.openNm); $target.stop().slideUp(300); $sub_target01.stop().slideDown(300); $sub_target02.stop().slideUp(300); j$('#pageTopBtn').removeClass('up'); } else { self.addClass(c.openNm); $target.stop().slideDown(300); $sub_target01.stop().slideUp(300); $sub_target02.stop().slideDown(300); j$('#pageTopBtn').addClass('up'); EPOS_CARD.module.equalHeight(true, true); EPOS_CARD.module.sizeFix(); } j$('.floatingClose').click(); }); }; j$.finc_accordion03 = function(){ var c = { elm: ".toggleWrap03", trigger: ".toggleTrigger03", target: ".toggleContent03", openNm: "open", closeNm: "close", }; // vars var $elm = j$(c.elm), $trg = j$(c.trigger); if($elm.length === 0){ return false; } // setting $elm.each(function(){ var self = j$(this), $target = self.find(c.target), selfHeight = $target.outerHeight(), closeHeight = (window.innerWidth > 750) ? '175px' : '106px'; setTimeout(function(){ $target.attr('data-height', selfHeight); if(!$target.hasClass(c.openNm)){ $target.addClass(c.closeNm); $target.outerHeight(closeHeight) } }, 300); }); // trigger $trg.on("click",function(){ var self = j$(this), $wrap = self.parents(c.elm), $target = $wrap.find(c.target), openHeight = $target.attr('data-height'), closeHeight = (window.innerWidth > 750) ? '175px' : '106px'; if(self.hasClass(c.openNm)){ var selfHeight = $target.outerHeight(); $target.attr('data-height', selfHeight); self.removeClass(c.openNm); $target.stop().animate({height: closeHeight}, 300).removeClass(c.openNm).addClass(c.closeNm); } else { self.addClass(c.openNm); $target.stop().animate({height: openHeight}, 300, function(){$target.stop().css({height: "auto"});}).removeClass(c.closeNm).addClass(c.openNm); EPOS_CARD.module.equalHeight(true, true); EPOS_CARD.module.sizeFix(); } }); var compleat_flag = 0; $elm.each(function(){ var self = j$(this), $target = self.find(c.target), closeHeight = (window.innerWidth > 750) ? '175px' : '106px'; $target.css('height', 'auto'); var selfHeight = $target.outerHeight(); setTimeout(function(){ $target.attr('data-height', selfHeight); if(!$target.hasClass(c.openNm)){ $target.addClass(c.closeNm); $target.outerHeight(closeHeight) } compleat_flag++ }, 300); }); // ページ表示時のスムーススクロールの不具合解消用 var anchor_scroll = setInterval(function(){ setTimeout(function(){ if($elm.length == compleat_flag){ var hash = location.hash; if($(hash).length !== 0){ j$("html, body").stop().animate({ scrollTop: $(hash).offset().top }, 300, "swing"); } clearInterval(anchor_scroll); } }, 200); }, 100); anchor_scroll; }; /** * @method fincTabs */ j$.fincTabs = function(config){ // options var c = j$.extend({ factorElement: '.js-finc-tabs', naviElement: '.js-finc-tabs__navi', triggerElement: '.js-finc-tabs__trigger', panelElement: '.js-finc-tabs__panel', firstDisplayTab: '', // 初期表示タブ:タブのid「#xxxx」を指定(※何も指定しなければ一番最初のタブを表示) }, config); // vars var $elm = j$(c.factorElement); var tabWrap = c.factorElement; var tabNavi = c.naviElement; var tabTrigger = c.triggerElement; var tabPanel = c.panelElement; var currentName = 'active'; // exit if ($elm.length === 0) { return false; } // setting:表示設定 $elm.each(function () { var $wrap = j$(this); var $navi = $wrap.find(tabNavi); var $panel = $wrap.find(tabPanel); var query = location.search; var paramVal = ''; var firstPanel = c.firstDisplayTab; var scrollFlag = false; var speed = 300; var easing = "swing"; var adjust = 20; if(query) { var params = []; params = query.split('?')[1].split('&'); for(var i=0; i