/********************************************* * gintama.js *********************************************/ /* ------------------------------------------- * @init ------------------------------------------- */ $(function(){ var u = new EPOS_CARD.Util(); $.Toggle(); $.pu_tabs(); $.paramcontrol(); }); /* ------------------------------------------- * @plugin ------------------------------------------- */ (function($){ /* * gtToggle * PC:タブ切り替え SP:アコーディオン */ $.Toggle = function(){ // instance var u = new EPOS_CARD.Util(); // vars var $elm = $(".pointup-tabWrap01"), cnt = ".pointup-tabContent", list = ".pointup-tabList li", activeName = "actOpne", speed = 300, $list = $elm.find(list), $cnt = $elm.find(cnt), $toggle = $elm.find(list), mode = u.isRangeSP()? "SP" : "PC"; if($elm.length === 0){ return false; } // setting /*if(u.isRangeSP()){ $list.removeClass(activeName); $cnt.removeClass(activeName); }*/ /* _init * 初期化 */ var _init = function(){ $list.removeClass(activeName); $toggle.removeClass(activeName); $cnt.css("display","").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); EPOS_CARD.module.equalHeight(); EPOS_CARD.module.sizeFix(); } return false; }); }; /* spInit */ var spInit = function(){ var $trg = $toggle.find("a"), $close = $(".pointup-spToggleClose").find("a"); // setting _init(); $list.eq(0).addClass(activeName); $cnt.eq(0).addClass(activeName); // click $trg.on("click",function(){ var self = $(this), $myToggle = self.parent(list), 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: $list.removeClass(activeName); $cnt.removeClass(activeName); $myToggle.addClass(activeName); $target.addClass(activeName); $target.slideDown(speed); break; default: break; } EPOS_CARD.module.equalHeight(); return false; }); $close.on("click",function(){ var self = $(this), $wrapper = self.closest(".pointup-tabWrap01"), $target = $wrapper.find(cnt), ofs_top = $wrapper.offset().top; $list.removeClass(activeName); $target.slideUp(speed).removeClass(activeName); $("body,html").animate({ scrollTop: ofs_top }); }); }; /* initialize */ var _initialize = function(){ if(!u.isRangeSP()){ pcInit(); } else { spInit(); } }; _initialize(); }; /** * @method tabs */ $.pu_tabs = function(){ var c = { tabName: ".pu-tabWrap", tablist: ".pu-tabList", boxName: ".pu-tabDetail", openClass : "active", escapeClass : "noTabLink" }; var $elm = $(c.tabName); if($elm.length === 0){ return false; } $elm.each(function(){ var $this = $(this), $list = $(c.tablist, $this), $box = $(c.boxName, $this); // 初期表示 $box.hide(); $('li', $list).removeClass(c.openClass); $('li:first-child', c.tablist).addClass(c.openClass); $('li:first-child a', c.tablist).each(function(){ var showTab = $(this).attr("href"); $(showTab).show(); }); $list.on('click', 'li', function() { if($(this).is('.' + c.escapeClass)) { return false; } if($(this).hasClass(c.openClass)) { return false; } else { var href = $("a", this).attr("href"); $list.children().removeClass(c.openClass); $(this).addClass(c.openClass); $box.hide(); $(href).show(); EPOS_CARD.module.equalHeight(); return false; } }); }); } /** * @method paramcontrol */ $.paramcontrol = function(){ var c = { elm01: ".js-paramJQ", elm02: ".js-paramNotJQ" }; var $elm01 = $(c.elm01); var $elm02 = $(c.elm02); if($elm01.length === 0 && $elm02.length === 0){ return false; } $elm01.hide(); $elm02.hide(); var params = new URLSearchParams(document.location.search); var from = params.get("from"); if(from && from == 'jq') { $elm01.show(); } else { $elm02.show(); } } })(jQuery); /*タブ切り替え ----------------------------------------------------*/ function jsTabs(){ var u = new EPOS_CARD.Util(); var G_fixTabHeight = 64; var showTab; //タブ切り替え本体 var c = $.extend({ tabName: ".jsTabContents", tablist: ".jsTabList", boxName: ".jsTabDetail", openClass : "active", escapeClass : "noTabLink" }); var $elm = $(c.tabName); if($elm.length === 0){ return false; } $elm.each(function(){ var $this = $(this), $list = $(c.tablist, $this), $box = $(c.boxName, $this); // 初期表示 $box.hide(); // ハッシュ制御 var myHash = location.hash; if(myHash.indexOf("tab")){ var $hashTarget = $('.jsTabList').find('a[href^="' + myHash + '"]').parent("li"), parentID = $hashTarget.parent('.jsTabList').attr("id"); if($hashTarget.length > 0){ var dataName = $hashTarget.parents(c.tablist).attr("data-ancnum"); $(dataName).addClass("isOpen"); $hashTarget.addClass('active'); var ancPoint = $("#" + parentID).offset().top; setTimeout(function(){ $("html, body").animate({ scrollTop: ancPoint }, 500); },100); } } $('li.active a', c.tablist).each(function(){ showTab = $(this).attr("href"); $(showTab).show(); }); $list.on('click', 'li', function() { if($(this).is('.' + c.escapeClass)) {return false;} var dataName = $(this).parents(c.tablist).attr("data-ancnum"); if($(this).hasClass(c.openClass)) { $(this).removeClass("active"); $(dataName).removeClass("isOpen"); $box.hide(); } else { EPOS_CARD.module.equalHeight(true, true); var href = $("a", this).attr("href"); $(this).removeClass("active"); $list.children().removeClass(c.openClass); $(this).addClass(c.openClass); $box.hide(); $(dataName).addClass("isOpen"); $("a",dataName).removeClass("isActive"); $("a",dataName).each(function(){ if($(this).attr("href")===href){ $(this).addClass("isActive"); } }); $(href).show(); return false; } }); }); /*タブ内アンカー ----------------------------------------------------*/ $(".jsAncList li a").click(function(eo){ var $targetPoint = $(this).attr("href"); var openScroll = $($targetPoint).offset().top; setTimeout(function(){ $('body,html').animate({scrollTop:openScroll - G_fixTabHeight+1},500); },100); eo.preventDefault(); }); } /*スマホ時のアコーディオン ----------------------------------------------------*/ function spAccodion(){ var u = new EPOS_CARD.Util(); var $elmTarget = $(".jsTabDetail"); var $elmKey = $(".jsSPAncSwitch"); $elmKey.click(function(){ if($(this).hasClass("isActive")) { $(this).removeClass("isActive"); $(this).next($elmTarget).slideUp(); return false; } else { EPOS_CARD.module.equalHeight(true, true); $(this).addClass("isActive"); $(this).next($elmTarget).slideDown(); return false; } }); // ハッシュ制御 var myHash = location.hash; if(myHash.indexOf("tab")){ u.$win.on("load",function(){ var $hashTarget = $(myHash).prev(".jsSPAncSwitch"); if($hashTarget.length > 0){ var ancPoint = $hashTarget.offset().top; setTimeout(function(){ $("html, body").animate({ scrollTop: ancPoint }, 500); },100); $hashTarget.next($elmTarget).slideToggle(); EPOS_CARD.module.equalHeight(true, true); } }); } } /*タブ内タブ表示 ----------------------------------------------------*/ function jsTabsHash(){ var u = new EPOS_CARD.Util(); var hash = location.hash, search = location.search.substring(1), ancLength = "#anchor", activeName = "actOpne"; /* 初期化 */ var _init = function(){ $(".pointup-tabList li").removeClass(activeName); $(".pointup-tabContent").css("display","").removeClass(activeName); }; /* 大タブ切り替え */ var _tabOn = function(){ $(".pointup-tabList li").eq(1).addClass(activeName); $(".pointup-tabContent").eq(1).addClass(activeName); }; // ハッシュタグ if(hash){ if (hash === ancLength + "01" || hash === ancLength + "02" || hash === ancLength + "03" || hash === ancLength + "04" || hash === ancLength + "05" || hash === ancLength + "06" || hash === ancLength + "07" || hash === ancLength + "08" || hash === ancLength + "09" || hash === ancLength + "10" || hash === ancLength + "11" || hash === ancLength + "12" || hash === ancLength + "13" || hash === ancLength + "14" || hash === ancLength + "15") { _init(); _tabOn(); if(u.isRangeSP()){ var hashString = location.hash.substr(1); // remove '#' history.replaceState('', document.title, window.location.pathname); // anc isActive if (hash === ancLength + "01") { $(".jsSPAncSwitch.isPoint01").addClass("isActive"); } else if (hash === ancLength + "02") { $(".jsSPAncSwitch.isPoint02").addClass("isActive"); } else if (hash === ancLength + "03") { $(".jsSPAncSwitch.isPoint03").addClass("isActive"); } else if (hash === ancLength + "04") { $(".jsSPAncSwitch.isPoint04").addClass("isActive"); } else if (hash === ancLength + "05") { $(".jsSPAncSwitch.isPoint05").addClass("isActive"); } else if (hash === ancLength + "06") { $(".jsSPAncSwitch.isPoint06").addClass("isActive"); } else if (hash === ancLength + "07") { $(".jsSPAncSwitch.isPoint07").addClass("isActive"); } else if (hash === ancLength + "08") { $(".jsSPAncSwitch.isPoint08").addClass("isActive"); } else if (hash === ancLength + "09") { $(".jsSPAncSwitch.isPoint09").addClass("isActive"); } else if (hash === ancLength + "10") { $(".jsSPAncSwitch.isPoint10").addClass("isActive"); } else if (hash === ancLength + "11") { $(".jsSPAncSwitch.isPoint11").addClass("isActive"); } else if (hash === ancLength + "12") { $(".jsSPAncSwitch.isPoint12").addClass("isActive"); } else if (hash === ancLength + "13") { $(".jsSPAncSwitch.isPoint13").addClass("isActive"); } else if (hash === ancLength + "14") { $(".jsSPAncSwitch.isPoint14").addClass("isActive"); } else if (hash === ancLength + "15") { $(".jsSPAncSwitch.isPoint15").addClass("isActive"); } else { // no } } else { } } // ハッシュタグなし遷移 } else if(search === "shop"){ _init(); _tabOn(); var targetOffset = $('.pointup-tabWrap01').offset().top; setTimeout(function(){ $("html, body").animate({ scrollTop: targetOffset }, 500); },100); } else { } } /*init ----------------------------------------------------*/ //DOM Init $(function(){ var u = new EPOS_CARD.Util(); //SP専用 if(u.isRangeSP()){ spAccodion(); } }); //LOAD Init $(window).load(function(){ var u = new EPOS_CARD.Util(); jsTabsHash(); //PC専用 if(!u.isRangeSP()){ jsTabs(); } });