/********************************************* * base00009contentsName.js *********************************************/ /* ------------------------------------------- * @init ------------------------------------------- */ $(function(){ var u = new EPOS_CARD.Util(); $.modal(); $.base00009Toggle(); $.customScroll(); $.floationgControl(); $(window).on('load', function (){ $.saucydog_equalHeight(true, true); }); }); /* ------------------------------------------- * @plugin ------------------------------------------- */ (function($){ /* * @method digitalcard_equalHeight * - 高さ揃え * @param {Boolean} * - 文字可変・リサイズに対応するかどうか */ $.saucydog_equalHeight = function(fsCheck, wsCheck){ var u = new EPOS_CARD.Util(); var className = ".saucydog_equalHeight", childBaseName = "equalChild", cancelName = "sp-eqCancel", $elm = $(className), $children = $elm.children(), $spChildren = $elm.not("." + cancelName).children(),// SP時に有効となる要素 winW = u.$win.width(), fsCheck = fsCheck || false, wsCheck = wsCheck || true, spCheck = false; if($elm.length === 0 || $children.length < 2){ return false; } if(winW < u.breakPoint1){ spCheck = true; } /* childBaseNameのグループ化 */ var grouping = function(w){ var $groupedChildren = $elm.find("*[class*=" + childBaseName + "]"), classNames = {},groups = []; $groupedChildren.each(function(){ var splitClass = $(this).attr("class").split(" "), splitClassNum = splitClass.length, newClassName; for(var i = 0; i < splitClassNum; i++){ newClassName = splitClass[i].match(RegExp(childBaseName + "[a-z0-9,_,-]*", "i")); if(!newClassName){ continue; } else { newClassName.toString(); classNames[newClassName] = newClassName; } } }); // childBaseNameの格納 for(var c in classNames){ if(w < u.breakPoint1){ groups.push($elm.not("." + cancelName).find("." + c));// SP時にcancelNameを持つ要素を対象から外す } else { groups.push($elm.find("." + c)); } } return groups; }; }, $.modal = function(config){ var u = new EPOS_CARD.Util(); var c = $.extend({ elm: ".js-Modal" },config); // vars var $elm = $(c.elm); if($elm.length === 0){ return false; } // trigger if(!u.isRangeSP()){ $elm.colorbox({ inline: true, width: "100%", maxWidth: "1100px", maxHeight: "92%", fixed: true, onComplete: function(){ EPOS_CARD.module.equalHeight(true, true); EPOS_CARD.module.sizeFix(); } }); } else { $elm.colorbox({ inline: true, height: "", maxWidth: "100%", maxHeight: "100%", fixed: true, onComplete: function(){ EPOS_CARD.module.equalHeight(true, true); EPOS_CARD.module.sizeFix(); } }); } }, /* * base00009Toggle * PC:タブ切り替え SP:アコーディオン */ $.base00009Toggle = function(){ // instance var u = new EPOS_CARD.Util(); // vars var $elm = $(".base00009-tabWrap01"), cnt = ".base00009-tabContent", toggle = ".base00009-spToggleTrg", list = ".base00009-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 = $(".base00009-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(".base00009-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; } }); }; /* * 既存踏襲 * $.customScroll * カスタムスクロールバー */ $.customScroll = function(){ if($("#news_area").length === 0){ return false; } $(window).load(function(){ $("#news_area").mCustomScrollbar({ scrollButtons:{enable:true}, theme:"my-theme" }); }); }; /* * @method floationgControl * - フローティングCV制御 */ $.floationgControl = function(){ // instance var u = new EPOS_CARD.Util(); // vars var $pageContainer = $("#pageContainer"), $elm = $('.js-base09Floating'), closeNm = "floatingNone", $close = $(".floatingClose"), $toggleElm = $(".floating-toggle"), speed = 300; if($elm.length === 0){ return false; } // setting var slideInSpeed = 500, completeNm = "slide-in-completed", negative = $elm.innerHeight() + 20; // setting $elm.css("bottom", "-" + negative + "px"); // function var floatingSet = function(){ if(!$elm.hasClass(closeNm)){ $pageContainer.css("padding-bottom", $elm.innerHeight()); } else { $pageContainer.css("padding-bottom", 0); } }; // close if($close.length !== 0){ $close.on("click",function(){ if($elm.hasClass(closeNm)){ $elm.removeClass(closeNm); $toggleElm.stop().slideDown(speed,function(){ $pageContainer.animate({"padding-bottom": $elm.innerHeight()},speed); }); } else { $elm.addClass(closeNm); $toggleElm.stop().slideUp(speed,function(){ $pageContainer.animate({"padding-bottom": 0},speed); }); } }); } // trigger floatingSet(); u.isWindowSizeCheck(function(){ floatingSet(); }); // load u.$win.on("load", function(){ $elm.show(); $elm.addClass(completeNm).animate({ "bottom": 0 },slideInSpeed); }); }; })(jQuery);