/********************************************* * gintama.js *********************************************/ /* ------------------------------------------- * @init ------------------------------------------- */ $(function(){ var u = new EPOS_CARD.Util(); $.gtToggle(); $.gt_cBox(); $.customScroll(); $.fadeAnimation(); $.bgChange(); }); /* ------------------------------------------- * @plugin ------------------------------------------- */ (function($){ /* * gtToggle * PC:タブ切り替え SP:アコーディオン */ $.gtToggle = function(){ // instance var u = new EPOS_CARD.Util(); // vars var $elm = $(".ope-tabWrap01"), cnt = ".ope-tabContent", toggle = ".ope-spToggleTrg", list = ".ope-tabList li", activeName = "active", speed = 300, $list = $elm.find(list), $cnt = $elm.find(cnt), $toggle = $elm.find(toggle), mode = u.isRangeSP()? "SP" : "PC", webkit = /webkit/; if($elm.length === 0){ return false; } // setting if(u.isRangeSP()){ $list.removeClass(activeName); $cnt.removeClass(activeName); } /* _init * 初期化 */ var _init = function(){ $list.removeClass(activeName); $cnt.css("display","").removeClass(activeName); $toggle.removeClass(activeName); }; /* pcInit */ var pcInit = function(){ var $trg = $list.find("a"); // setting _init(); $list.eq(0).addClass(activeName); $cnt.eq(0).addClass(activeName); // click $trg.on("click",function(){ var self = $(this), $myList = self.parent("li"); switch($myList.hasClass(activeName)){ case true: break; case false: tabSwitch(); break; default: break; } function tabSwitch(){ var getTarget = self.attr("href"), $target = $(getTarget); $list.removeClass(activeName); $cnt.removeClass(activeName); $myList.addClass(activeName); $target.addClass(activeName); } return false; }); }; /* spInit */ var spInit = function(){ var $trg = $toggle.find("a"), $close = $(".ope-spToggleClose").find("a"); // setting _init(); // click $trg.on("click",function(){ var self = $(this), $myToggle = self.parent(toggle), getTarget = self.attr("href"), $target = $(getTarget); if($target.is(":animated")){ return false; } switch($myToggle.hasClass(activeName)){ case true: $myToggle.removeClass(activeName); $target.removeClass(activeName); $target.slideUp(speed); break; case false: $myToggle.addClass(activeName); $target.addClass(activeName); $target.slideDown(speed); break; default: break; } return false; }); $close.on("click",function(){ var self = $(this), $wrapper = self.closest(".ope-spToggleContent"), $target = $wrapper.find(cnt), $toggle = $wrapper.find(toggle), ofs_top = $wrapper.offset().top; $target.slideUp(speed).removeClass(activeName); $toggle.removeClass(activeName); $("html, body").animate({ scrollTop: ofs_top }, speed, "swing"); }); }; /* initialize */ var _initialize = function(){ if(!u.isRangeSP()){ pcInit(); } else { spInit(); } }; _initialize(); u.isWindowSizeCheck(function(){ var afterMode = u.isRangeSP()? "SP" : "PC"; if(mode !== afterMode){ _initialize(); mode = afterMode; } }); }; /* * gt_cBox * モーダル */ $.gt_cBox = function(config){ // instance var u = new EPOS_CARD.Util(); // element var $elm = $(".ope-cb-inline"); if($elm.length === 0){ return false; } if(u.isRangeSP()){ $elm.colorbox({ inline: true, innerWidth:"95%", innerHeight: "auto", maxWidth: "95%", maxHeight: "98%", fixed: true, className: "cb-ytWrap", }); } else { $elm.colorbox({ inline: true, innerWidth:1100, innerHeight:"auto", maxWidth: "100%", maxHeight: "100%", fixed: true, className: "cb-ytWrap", }); } }; /* * fadeAnimation * フェードアニメーション */ $.fadeAnimation = function(){ var $elm = $(".js-fadeAnimation"), animationClass = "is-animation"; if($elm.length === 0){ return false; } $elm.each(function(){ $(this).addClass(animationClass); }) }; /* * 既存踏襲 * $.customScroll * カスタムスクロールバー */ $.customScroll = function(){ if($("#news_area").length === 0){ return false; } $(window).load(function(){ $("#news_area").mCustomScrollbar({ scrollButtons:{enable:true}, theme:"my-theme" }); }); }; /* * $.bgChange * 背景切り替え */ $.bgChange = function(){ var $elm = $('.js-bgChange'), animationClass = 'is-bgChange', main = $('.mainVisualInner'), $header = $('#ope-header'); if($elm.length === 0){ return false; } var show = function() { var elmHeight = main.innerHeight(); var scrollPos = $(window).scrollTop(); var headerHeight = $header.innerHeight(); var mainHeight = elmHeight + headerHeight; if(scrollPos >= mainHeight) { $elm.addClass(animationClass); }else{ $elm.removeClass(animationClass); } } show(); $(window).on('scroll', function (){ show(); }); } })(jQuery);