/********************************************* * common.js * ------------------------------------------- * @namespace * - EPOS_CARD * @noConflict * - j$ * @constructor * - Util(variable/method) * :variable * - $win * - $doc * - ua * - SMART_UA * :method * - isRangeSP * - isNotPC * - isSmartphone * - isTablet * - isAndroid * - isChrome * - isIE8 * @module * - respondBrowser * - viewport * - rollover * - opacityRollover * - smoothScroll * - fadePageTop * - sizeFix * - accordion * - tabs * - equalHeight * - swapImg * - findRowLast * - customCheck * - selectBox * - headingNavi * - headingNavi2 * - modal * - tableHeadAppend * - elemswap * - floationgControl * - popup * - okwave *********************************************/ /* ------------------------------------------- * @namespace ------------------------------------------- */ var EPOS_CARD = EPOS_CARD || {}; /* ------------------------------------------- * @noConflict ------------------------------------------- */ jqNew = jQuery.noConflict(); if($ === undefined){ $ = jQuery; } j$ = jQuery || jqNew; /* ------------------------------------------- * @constructor ------------------------------------------- */ EPOS_CARD.Util = function(){ this.$win = j$(window); this.$doc = j$(document); this.ua = navigator.userAgent.toLowerCase(); this.SMART_UA = ["iphone","ipad","android","windows phone"]; this.pageW = 1240; this.breakPoint1 = 750; }; EPOS_CARD.Util.prototype = { /* * @method isRangeSP * @return {Boolean} */ isRangeSP: function(){ var winW = this.$win.width(); return (winW <= this.breakPoint1) ? true : false; }, /* * @method isNotPC * @return {Boolean} */ isNotPC: function(){ var uaArray = new RegExp(this.SMART_UA.join("|"),"i"); return uaArray.test(this.ua); }, /* * @method isTablet * @return {Boolean} */ isTablet: function(){ var UA = { iPad: this.ua.indexOf('ipad') != -1, Android: this.ua.indexOf('android') != -1 && this.ua.indexOf('mobile') == -1 }; return (UA.iPad || UA.Android) ? true : false; }, /* * @method isSmartphone * @return {Boolean} */ isSmartphone: function(){ var UA = { iPhone: this.ua.indexOf('iphone') != -1, iPod: this.ua.indexOf('ipod') != -1, Android: this.ua.indexOf('android') != -1 && this.ua.indexOf('mobile') != -1, WindowsPhone: this.ua.indexOf('windows phone') != -1 } return (UA.iPhone || UA.iPod || UA.Android || UA.WindowsPhone) ? true : false; }, /* * @method isiPhone * @return {Boolean} */ isiPhone: function(){ var UA = { iPhone: this.ua.indexOf('iphone') !== -1, iPod: this.ua.indexOf('ipod') !== -1, }; return (UA.iPhone || UA.iPod) ? true : false; }, /* * @method isAndroid * @return {Boolean} */ isAndroid: function(){ return (this.ua.indexOf('android') != -1) ? true : false; }, /* * @method isChrome * @return {Boolean} */ isChrome: function(){ return (this.ua.indexOf("chrome") != -1) ? true : false; }, /* * @method isIE8 * @return {Boolean} */ isIE8: function(){ return (this.ua.indexOf("msie 8") != -1) ? true : false; }, /* * @method isFontSizeCheck * @param {function} callback * - フォントサイズが変更されたら、callbackを実行 */ isFontSizeCheck: function(callback){ var HTML_FS_WATCH = j$('
 
'), CSS_OBJECT = { display: "block", visibility: "hidden", position: "absolute", top: "0", padding: "0" }, $elm, interval = 500, currentSize = 0; // 監視用HTMLを生成する HTML_FS_WATCH.css(CSS_OBJECT).appendTo("body"); $elm = j$("#fontSizeWatcher"); // 要素の高さを取得 var getSize = function($elm){ return $elm.height(); }; // 要素の高さを比較して、異なればcallbackを実行 var fontSizeCheck = function(){ var h = getSize($elm); if(h === currentSize){ return false; } else { currentSize = h; callback(); } }; setInterval(fontSizeCheck, interval); }, /* * @method isWindowSizeCheck * @param {function} callback * - windowのリサイズ処理が完了したら、callbackを実行 */ isWindowSizeCheck: function(callback){ var resize = false, interval = 500; this.$win.on("resize", function(){ // リサイズされている間は何もしない if(resize !== false){ clearTimeout(resize); } resize = setTimeout(function(){ callback(); }, interval); }); } }; /* ------------------------------------------- * @module ------------------------------------------- */ EPOS_CARD.module = function(){ var u = new EPOS_CARD.Util(); return { /* * @method initialize * - 初期化 */ initialize: function(){ this.respondBrowser(); this.viewport(); this.rollover(); this.opacityRollover(); this.smoothScroll(); this.fadePageTop(); this.accordion(); this.tabs(); this.swapImg(); this.findRowLast(); this.radioBtn(); this.customCheck(); this.selectBox(); //this.headingNavi(); Load後実行 //this.headingNavi2(); Load後実行 this.modal(); this.tableHeadAppend(); this.elemswap(); this.floationgControl(); this.popup(); //this.okwave(); 各ページで個別に実行 }, /* * @method respondBrowser * - ブラウザ対応 */ respondBrowser: function(){ /* PC、タブレットの場合 */ if(!u.isSmartphone()){ // UA判別による要素削除 j$(".ua_spOnly").remove(); } /* PC以外の場合 */ if(u.isNotPC()){ // UA判別による要素削除 j$(".ua_pcOnly").remove(); } if(u.isSmartphone()){ // 電話リンク付与 j$('.telLink').each(function(){ var telNum = j$(this).text(); j$(this).html(j$('').attr('href', 'tel:' + telNum.replace(/\s+|-/g, '')).append(telNum + '')); }); } // UA判別による要素の出し分け if(u.isiPhone()){ j$(".ua-iPhoneOnly").show(); j$(".ua-AndroidOnly").remove(); } if(u.isAndroid()){ j$(".ua-AndroidOnly").show(); j$(".ua-iPhoneOnly").remove(); } }, /* * @method viewport * - viewport対応 */ viewport: function(){ var viewPoint = u.pageW; if(u.isTablet()){ j$("body").css("width", viewPoint + "px"); j$("meta[name='viewport']").attr("content", "width=" + viewPoint + "px"); } }, /* * @method rollover * - ロールオーバー */ rollover: function(){ if(u.isNotPC() || u.isRangeSP()){ return false; } var $elm = j$(".rollover"), onSuffix = "on"; var src = { over: function($elm){return $elm.attr("src").replace(/^(.+)(\.[a-z]+)$/, "$1" + onSuffix + "$2");}, out: function($elm){return $elm.attr("src").replace(new RegExp("^(.+)" + onSuffix + "(\.[a-z]+)$" ), "$1$2");}, preload: function($elm){return $elm.attr("src").replace(/^(.+)(\.[a-z]+)$/, "$1" + onSuffix + "$2");} }; $elm .hover(function(){ j$(this).attr("src", src.over(j$(this))); }, function(){ j$(this).attr("src", src.out(j$(this))); }) .each(function(){ j$("").attr("src", src.preload(j$(this))); }); }, /* * @method rollover * - ロールオーバー(透過) */ opacityRollover : function(config){ if(u.isNotPC()){ return false; } // @user option var c = j$.extend({ className: ".opRollover", animSpeed: 200 }, config); j$(c.className).hover( function(){ j$(this).stop().animate({ "opacity": 0.6 },c.animSpeed); }, function(){ j$(this).stop().animate({ "opacity": 1.0 },c.animSpeed); } ); }, /* * @method smoothScroll * - スムーススクロール */ smoothScroll: function(config){ var c = j$.extend({ speed: 300, easing: "swing", noScrollClass: ".noScroll", fixParts: ".heading01.hasNav" }, config); /* vars ------------------------------- */ var url = j$(location).attr("href"), hash = location.hash, href, target, position, difference, webkit = /webkit/; /* trigger ------------------------------- */ /* ページ遷移+アンカー移動制御 */ u.$win.load(function(){ if((url.indexOf("#anc") !== -1)||(url.indexOf("#info_anchor") !== -1)){ target = j$(hash); if(j$(c.fixParts).length === 0){ position = target.offset().top; } else { difference = j$(c.fixParts).innerHeight(); position = target.offset().top - difference; } j$("html, body").animate({ scrollTop: position }, c.speed, c.easing); } }); /* スクロール制御 */ j$("a[href^=#]").not("a[href=#], a[href^=#tab], a[href^=#modal], " + c.noScrollClass + "").click(function(){ href = j$(this).attr("href"); target = j$(href); if(j$(c.fixParts).length === 0){ position = target.offset().top; } else { difference = j$(c.fixParts).innerHeight(); position = target.offset().top - difference; } if(u.isRangeSP()){ j$("html, body").animate({ scrollTop: position }, c.speed, c.easing); } else { j$("html, body").animate({ scrollTop: position }, c.speed, c.easing); } return false; }); }, /** * @method fadePageTop */ fadePageTop: function(config) { // vars var dsClass = "in", $elm = j$("#pageTopBtn"), speed = 300; // function var fdOut = function(){ $elm.stop().animate({"opacity":"0"},speed,function(){ j$(this).removeClass(dsClass); j$(this).hide(); }); }; var fdIn = function(){ if($elm.hasClass(dsClass)) { // 既にスクロールが始まっていたら処理しない return; } else { $elm.show().addClass(dsClass).stop().animate({"opacity":"1.0"},speed); } }; var scrollAct = function(){ var top = u.$win.scrollTop(); if(top === 0){ fdOut(); } else { fdIn(); } }; // trigger scrollAct(); u.$win.on("scroll",function(){ scrollAct(); }); // リサイズ時 u.isWindowSizeCheck(scrollAct); }, /* * @method sizeFix * - 画像幅取得 */ sizeFix: function(config){ // user option var c = j$.extend({ elm: ".sizeFix", isSpRun: true, resizeRerun: true }, config); // vars var $elm = j$(c.elm).not(":hidden"), spEscName = "spEscape", setW; // return false if(($elm.length === 0)||(!c.isSpRun && u.isSmartphone())){ return false; } // function var sizeSet = function(target){ if(c.resizeRerun){ if(u.isRangeSP() && target.hasClass(spEscName)){ target.css("width", ""); return; } else { target.css("width", ""); } } else if(u.isRangeSP() && target.hasClass(spEscName)) { return; } setW = j$("img", target).width(); target.css("width", setW); }; // trigger $elm.each(function(){ var self = j$(this); sizeSet(self); if(c.resizeRerun){ u.isWindowSizeCheck(function(){ sizeSet(self); }); } }); }, /* * @method equalHeight * - 高さ揃え * @param {Boolean} * - 文字可変・リサイズに対応するかどうか */ equalHeight: function(fsCheck, wsCheck){ var className = ".equalHeight", childBaseName = "equalChild", cancelName = "sp-eqCancel", $elm = j$(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 = j$(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; }; /* 各要素の高さを揃える */ var equalHeight = function(elm){ var maxHeight = 0; elm.css("height", "auto"); elm.each(function(){ if(j$(this).outerHeight() > maxHeight){ maxHeight = j$(this).outerHeight(); } }); return elm.outerHeight(maxHeight); }; /* init */ var init = function(){ var winW = u.$win.width(), groups = grouping(winW); var eqAct = function(eqObj){ var h = [], child = [], maxHeight = 0, top = 0; j$.each(eqObj, function(){ var $group = j$(this).not(":hidden");// 非表示要素に適用させない場合.not(":hidden")を付与 $group.each(function(i){ j$(this).css("height", "auto"); h[i] = j$(this).outerHeight(); if(top != j$(this).position().top){ equalHeight(j$(child)); child = []; top = j$(this).position().top; } child.push(this); }); }); if(child.length > 1){ equalHeight(j$(child)); } } // childBaseName要素の高さを揃える eqAct(groups); // 子要素の高さを揃える if(winW < u.breakPoint1){ // SP時 eqAct($spChildren); j$("." + cancelName).children().css("height", "auto"); j$("." + cancelName).find("*[class*=" + childBaseName + "]").css("height", "auto"); } else { // PC時 eqAct($children); setTimeout( function(){ j$(".equalChild_bottom").css({ top: "inherit", bottom: 0 }); },100); } }; // 文字可変への対応可否 fsCheck ? u.isFontSizeCheck(init) : init(); wsCheck ? u.isWindowSizeCheck(init) : init(); }, /* * @method swapImg * - ウィンドウ幅で画像切り替え */ swapImg: function(config){ var c = j$.extend({ targetClass: ".swap", pcName: "pc_", spName: "sp_" }, config); if(j$(c.targetClass).length === 0){ return false; } j$(c.targetClass).each(function(){ var self = j$(this); var swapImg = function(){ if(u.isRangeSP()){ self.attr("src", self.attr("src").replace(c.pcName, c.spName)); } else { self.attr("src", self.attr("src").replace(c.spName, c.pcName)); } }; // 初回読込時 swapImg(); // リサイズ時 u.isWindowSizeCheck(swapImg); }); }, /** * @method accordion */ accordion: function(config){ var c = j$.extend({ elm: ".toggleWrap", trigger: ".toggleTrigger", target: ".toggleContent", speed: 300, openNm: "open" },config); // 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(); } }); }, /** * @method tabs */ tabs: function(config){ var c = j$.extend({ tabName: ".tabWrap", tablist: ".tabList", boxName: ".tabDetail", openClass : "active", escapeClass : "noTabLink" }, config); var $elm = j$(c.tabName); if($elm.length === 0){ return false; } $elm.each(function(){ var $this = j$(this), $list = j$(c.tablist, $this), $box = j$(c.boxName, $this); // 初期表示 $box.hide(); j$('li', $list).removeClass(c.openClass); j$('li:first-child', c.tablist).addClass(c.openClass); j$('li:first-child a', c.tablist).each(function(){ var showTab = j$(this).attr("href"); j$(showTab).show(); }); $list.on('click', 'li', function() { if(j$(this).is('.' + c.escapeClass)) { return false; } if(j$(this).hasClass(c.openClass)) { return false; } else { var href = j$("a", this).attr("href"); $list.children().removeClass(c.openClass); j$(this).addClass(c.openClass); $box.hide(); j$(href).show(); EPOS_CARD.module.equalHeight(); return false; } }); }); }, /** * @method findRowLast */ findRowLast: function(config){ var c = j$.extend({ targetElmName: "li", rowsClass: "rowLast" }, config); var $elm = j$(".findRowLast"); if($elm.length === 0){ return false; } findRowLast = function(){ $elm.each(function() { var $target = j$(c.targetElmName, this), len = $target.length, num = 0, init, eOffset, gOffset; $target.removeClass(c.rowsClass); $target.eq(len-1).addClass(c.rowsClass); $target.each(function(){ eOffset = parseInt(j$(this).offset().top); if(gOffset != eOffset){ j$(this).prev().addClass(c.rowsClass); gOffset = eOffset; } }); }); } //ロード時 findRowLast(); // 文字可変時 u.isFontSizeCheck(findRowLast); // リサイズ時 u.isWindowSizeCheck(findRowLast); }, /** * @method radioBtn */ radioBtn: function(config){ var c = j$.extend({ elm: ".radioList", activeClass: "checked" }, config); var $elm = j$(c.elm); if($elm.length === 0){ return false; } j$('input[type="radio"]', $elm).each(function(){ if (j$(this).prop('checked')) { j$(this).next("label").addClass(c.activeClass); } }); j$("label", $elm).on("click", function(){ j$(this).parents(c.elm).find("label").removeClass(c.activeClass); j$(this).addClass(c.activeClass).prev('input[type="radio"]').prop('checked', true); }); }, /** * @method customCheck */ customCheck: function(config){ var c = j$.extend({ elm: ".customCheck", activeClass: "checked" }, config); var $elm = j$(c.elm); if($elm.length === 0){ return false; } j$('input[type="checkbox"]', c.elm).each(function(){ if(j$(this).prop("checked")) { j$(this).next("label").addClass(c.activeClass); } }); j$("label", $elm).on("click", function(){ if(j$(this).prev('input[type="checkbox"]').prop("checked")){ j$(this).removeClass(c.activeClass); } else { j$(this).addClass(c.activeClass); } }); }, /* * @method selectBox */ selectBox: function() { var $elm = j$('.slcBlockWrap'); if($elm.length === 0){ return false; } $elm.each(function(){ var $this = j$(this); // var checkedNum = $this.find('.slcList .checked').index(); j$('.slcBlock', $this).hide(); j$(".slcBtn", $this).eq(0).trigger('click'); j$(".slcBlock", $this).eq(0).show(); j$(".slcBtn", $this).click(function() { var slcNum = j$(".slcBtn", $this).index(this); j$(".slcBlock", $this).hide(); j$(".slcBlock", $this).eq(slcNum).show(); }); }); }, /** * @method headingNavi */ headingNavi: function(){ // var elm var $elm = j$(".heading01.hasNav"), $lnav = j$(".lnav"), toggleSpeed = 300, openNm = "open"; if($elm.length === 0 || $elm.hasClass("type-2")){ return false; } // vars var $mainContents = j$("#mainContents"), elmTop = $elm.offset().top, elmHeight = $elm.innerHeight(), elmMb = $elm.css("margin-bottom"), difference = elmHeight + parseInt(elmMb) + "px"; // function var scrollHeading = function(){ var scrTop = j$(window).scrollTop(), fixNm = "fixed"; if (scrTop >= elmTop){ $mainContents.css("padding-top",difference); $elm.addClass(fixNm); } else if (scrTop < elmTop){ $mainContents.css("padding-top",0); $elm.removeClass(fixNm); } }; var spToggle = function(){ if(!u.isRangeSP()){ $lnav.css({ display: "block", height: "100%" }); $elm.removeClass(openNm); } else { $lnav.slideUp(toggleSpeed); $elm.removeClass(openNm); } $elm.find(".headLine .head").on("click",function(){ var self = j$(this).parents(".heading01.hasNav"); if(u.isRangeSP() && self.hasClass(openNm)){ $lnav.stop().slideUp(toggleSpeed); self.removeClass(openNm); } else if(u.isRangeSP() && !self.hasClass(openNm)) { $lnav.stop().slideDown(toggleSpeed); self.addClass(openNm); } else { return; } }); }; spToggle(); // trigger scrollHeading(); // スクロール時 u.$win.scroll(function(){ scrollHeading(); }); // ウィンドウ幅変更時 u.isWindowSizeCheck(function(){ scrollHeading(); }); }, /** * @method headingNavi2 */ headingNavi2: function(){ // var elm var $elm = j$(".heading01.hasNav.type-2"); if($elm.length === 0){ return false; } // vars var $mainContents = j$("#mainContents"), elmTop = $elm.offset().top, elmHeight = $elm.innerHeight(), elmMb = $elm.css("margin-bottom"), difference = elmHeight + parseInt(elmMb) + "px", outline = "headingOutline", $lnav = $elm.find(".lnav-wrap"), $lnavTrg = $elm.find(".headLine .head"), $childTrg = $lnav.find(".lnav-hasC"), childNavi = ".lnav-child", toggleSpeed = 300, openNm = "open", HTML_SKIN = j$('
 
'), CSS_SKIN = { position: "fixed", opacity: 0, top: 0, left: 0, width: "100%", height: j$(document).height(), display: "block", background: "rgba(68,68,68,0.95)", "z-index": "1" }, currentPath = location.pathname, $skin = j$(HTML_SKIN).css(CSS_SKIN); /* * setting */ $elm.wrap('
'); j$("." + outline).css("height",difference); // 自ページへのアンカーリンクのパス置換 var childLen = j$(childNavi).find("a").length, i; if(currentPath.match(/.*\/$/)){ // URLパスが/で終わる場合、index.htmlを付与 currentPath = currentPath + "index.html"; } for(i = 0; i < childLen; i++){ var self = j$(childNavi).find("a").eq(i), _href = self.attr("href"), __href = _href.replace(currentPath, ""); if(_href.indexOf("#") !== -1){ j$(childNavi).find("a").eq(i).attr("href",__href); } } EPOS_CARD.module.smoothScroll(); /* * function */ // nav1_close 見出し閉じる var nav1_close = function(){ $lnav.stop().slideUp(toggleSpeed); $elm.removeClass(openNm); $childTrg.animate({ "margin-bottom":"0" },0).removeClass(openNm); j$(childNavi).slideUp(0); j$("#pageTopBtn").css("z-index",""); j$("#floatingWrap01").css("z-index",""); if(u.isRangeSP()){ $skin.stop().animate({ opacity: 0 },toggleSpeed,function(){ $skin.remove(); }); } }; // nav1_open 見出し開く var nav1_open = function(a){ a.addClass(openNm); $lnav.stop().slideDown(toggleSpeed,function(){ if(u.isRangeSP()){ $lnav.css({ "height":(u.$win.innerHeight() - $elm.innerHeight()) + "px" }); } }); j$("#pageTopBtn").css("z-index","1"); j$("#floatingWrap01").css("z-index","1"); if(u.isRangeSP()){ $skin.appendTo("body").stop().animate({ opacity: 1.0 },toggleSpeed); } }; // nav2_close 子階層閉じる var nav2_close = function(a,b){ a.removeClass(openNm); b.stop().slideUp(toggleSpeed); }; // nav2_open 子階層開く var nav2_open = function(a,b){ $childTrg.animate({ "margin-bottom":"0" },toggleSpeed).removeClass(openNm); j$(childNavi).slideUp(toggleSpeed); a.addClass(openNm); b.stop().slideDown(toggleSpeed); }; // scrollHeading 見出し固定 var scrollHeading = function(){ var scrTop = j$(window).scrollTop(), fixNm = "fixed"; if (scrTop >= elmTop && !$elm.hasClass(fixNm)){ $elm.addClass(fixNm); } else if (scrTop < elmTop && $elm.hasClass(fixNm)){ $elm.removeClass(fixNm); } if(!u.isRangeSP()){ $lnav.css({ "display":"", "height":"" }); $skin.remove(); } /* if(u.isRangeSP()){ $lnav.css({ "height":(u.$win.innerHeight() - $elm.innerHeight()) + "px" }); } */ }; // trigger scrollHeading(); $lnavTrg.on("click",function(){ var self = j$(this).parents(".heading01.hasNav.type-2"); if($lnav.is(":animated") || !u.isRangeSP()){ return false; } switch(self.hasClass(openNm)){ case true: nav1_close(); break; case false: nav1_open(self); break; } }); $childTrg.on("click",function(){ var self = j$(this), $childNavi = self.find(childNavi); if($childNavi.is(":animated")){ return false; } switch(self.hasClass(openNm)){ case true: nav2_close(self,$childNavi); break; case false: nav2_open(self,$childNavi); break; } }); // 子階層リンククリック時 j$(childNavi).find("a").on("click",function(){ var _href = j$(this).attr("href"); if(_href.match(/^\#/)){ var self = $childTrg, $childNavi = self.find(childNavi); nav2_close(self,$childNavi); if(u.isRangeSP()){ nav1_close(); } } }); // 領域外クリック if(navigator.userAgent.toLowerCase().indexOf('ipad') > 0){ j$("body").css("cursor","pointer"); } j$(document).on("click",function(){ if(u.isRangeSP()){ nav1_close(); } else { nav2_close($childTrg,j$(childNavi)); } }); $elm.on("click",function(e){ e.stopPropagation(); }); j$(childNavi).find("a").on("click",function(e){ e.stopPropagation(); }); // スクロール時 u.$win.scroll(function(){ scrollHeading(); }); // ウィンドウ幅変更時 u.isWindowSizeCheck(function(){ scrollHeading(); }); }, /* * @method colorbox * @requires * - jquery.colorbox-min.js */ modal: function(config){ var c = j$.extend({ elm_html: ".cb-html", elm_inl: ".cb-inline", elm_yt: ".cb-youtube", elm_img: ".cb-img", customClose: ".cb_close", CLOSE_HTML: '

閉じる

' },config); var $elm_html = j$(c.elm_html), $elm_inl = j$(c.elm_inl), $elm_yt = j$(c.elm_yt), $elm_img = j$(c.elm_img), $close = j$(c.customClose); if(($elm_html.length === 0) && ($elm_inl.length === 0) && ($elm_yt.length === 0) && ($elm_img.length === 0)){ return false; } // 外部HTMLモーダル $elm_html.colorbox({ innerWidth: "auto", innerHeight: "auto", maxWidth: "100%", maxHeight: "100%", fixed: true, returnFocus:false, onComplete: function(){ EPOS_CARD.module.equalHeight(true, true); EPOS_CARD.module.sizeFix(); // modal内アンカー制御 j$("a[href*='#anc']").on("click",function(){ var href = j$(this).attr("href"), crr_path = location.pathname, spl_href = href.split("#"), hashNm = spl_href[spl_href.length - 1], speed = 300, easing = "swing", fixParts = ".heading01.hasNav", target = j$("#" + hashNm), position, webkit = /webkit/; if(crr_path !== spl_href[0]){ return } // ページ内アンカーでなければreturn if(j$(fixParts).length === 0){ position = target.offset().top; } else { difference = j$(fixParts).innerHeight() + 30; position = target.offset().top - difference; } if(u.isRangeSP()){ j$("html, body").animate({ scrollTop: position }, speed, easing); } else { j$("html, body").animate({ scrollTop: position }, speed, easing); } j$.colorbox.close(); return false; }); } }); // インラインモーダル $elm_inl.colorbox({ inline: true, maxWidth: "100%", maxHeight: "100%", fixed: true, onComplete: function(){ EPOS_CARD.module.equalHeight(true, true); EPOS_CARD.module.sizeFix(); } }); // 画像モーダル $elm_img.colorbox({ className: "cb-imgWrap", innerWidth: "auto", innerHeight: "auto", maxWidth: "100%", maxHeight: "100%", fixed: true }); // YOUTUBE モーダル if(u.isRangeSP()){ return; } else { $elm_yt.colorbox({ iframe: true, innerWidth:640, innerHeight:418, maxWidth: "100%", maxHeight: "100%", fixed: true, className: "cb-ytWrap", closeButton: false, onComplete: function(){ j$(c.CLOSE_HTML).appendTo("#colorbox.cb-ytWrap #cboxWrapper"); }, onClosed: function(){ j$("#ytClose").remove(); } }); } $close.on("click",function(){ j$.colorbox.close(); }); }, /* * @method tableHeadAppend * - thをtdに挿入 */ tableHeadAppend: function(config){ var c = j$.extend({ elmBaseNm: "sp-thEach" },config); var $thElm = j$('[id*="'+ c.elmBaseNm + '"]'); if($thElm.length === 0){ return false; } // trigger $thElm.each(function(){ var self = j$(this), thElmClass = self.attr("id"), thText = self.html(), $target = j$("." + thElmClass); $target.prepend('' + thText + ':'); }); }, /* * @method elemswap * - 要素の位置を入れ替え */ elemswap: function(config){ var $elm = j$(".swap-elm"); var c = j$.extend({ baseClass: "swap-baseElm", moveClass: "swap-moveElm", breakPoint: u.breakPoint1 }, config); if($elm.length === 0){ return false; } var swap = function(){ $elm.each(function(){ var $baseClass = j$('.' + c.baseClass, this), $moveClass = j$('.' + c.moveClass, this), winW = u.$win.innerWidth ? window.innerWidth: u.$win.width(); if(winW <= c.breakPoint){ $moveClass.insertBefore($baseClass); } else { $moveClass.insertAfter($baseClass); } }); }; swap(); // ウィンドウ幅変更時 u.isWindowSizeCheck(function(){ swap(); }); }, /* * @method floationgControl * - フローティングCV制御 */ floationgControl: function(){ // vars var $pageContainer = j$("#pageContainer, body#freshers"), // 社会人ページは既存コンテンツのため $elm = j$('[id*="floatingWrap"]'), closeNm = "floatingNone", $close = j$(".floatingClose"), $toggleElm = j$(".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() + 10); } 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() + 10},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); }); }, /* * @method popup * - ポップアップ */ popup: function(config){ // user option var c = j$.extend({ elm: ".popup", name: "POPUP", height: 600, width: 940, toolbar: 0, scrollbars: 1, status: 0, resizable: 1, left: 0, top: 0, center: true }, config); /* POPUP ウィンドウを中央に表示 */ if(c.center){ c.top = (screen.height - c.height) / 2; c.left = (screen.width - c.width) / 2; } var parameters = "height=" + c.height + ",width=" + c.width + ",toolbar=" + c.toolbar + ",scrollbars=" + c.scrollbars + ",status=" + c.status + ",resizable=" + c.resizable + ",left=" + c.left + ",screenX=" + c.left + ",top=" + c.top + ",screenY=" + c.top; j$(c.elm).on("click", function(){ if(u.isRangeSP()){ return; } window.open(this.href, c.name, parameters); return false; }) }, /* * @method okwave * - OKWAVE連携 */ okwave: function(config){ /** * @user option */ var c = j$.extend({ faqType: 'category', // category / id num: '1', sortType: 'sort_access', // sort_access / sort_new / sort_adjust_value count: '5', // 表示件数 target: j$(".qaColumn"), // 表示エリア elmBaseNm: ".okwave-elm-base", linkNm: "okwave-link", processIndex: 0 }, config); /** * vars */ var HTML = '', $elmBase = c.target.find(c.elmBaseNm), HTML_BASE = $elmBase.prop("outerHTML"), processTime = 0; /** * functions */ var catgoryFn = function(){ var jsonURL = 'http://faq.eposcard.co.jp/category/show/' + c.num + '.json' + '?sort=' + c.sortType; var xhr = j$.ajax({ url: jsonURL, type: 'GET', dataType: 'jsonp', jsonpCallback : 'faqCategory', timeout: 30000 }); xhr.success(function(data){ for(var i=0 ; i<=c.count-1 ; i++){ // HTML HTML += ''; HTML += data.faqs[i].faq.question; HTML += '別窓で開きます'; // output $elmBase.before(HTML); HTML = ""; } // output $elmBase.eq(0).remove(); c.target.find("." + c.linkNm).wrap(HTML_BASE); }); }, idFn = function(){ var jsonURL = 'http://faq.eposcard.co.jp/faq/show/' + c.num + '.json'; var xhr = j$.ajax({ url: jsonURL, type: 'GET', dataType: 'jsonp', jsonpCallback : 'faqId', timeout: 30000 }); xhr.success(function(data){ // HTML HTML += ''; HTML += data.faq.question; HTML += '別窓で開きます'; // output $elmBase.before(HTML); $elmBase.eq(0).remove(); c.target.find("." + c.linkNm).wrap(HTML_BASE); }); }; if(c.faqType === 'category'){ setTimeout(function(){ catgoryFn(); },300*c.processIndex); //catgoryFn(); } else { setTimeout(function(){ idFn(); },300*c.processIndex); //idFn(); } } }; }(); /* ------------------------------------------- * @init ------------------------------------------- */ j$(function(){ var u = new EPOS_CARD.Util(); EPOS_CARD.module.initialize(); u.$win.on("load", function(){ EPOS_CARD.module.equalHeight(true, true); EPOS_CARD.module.sizeFix(); EPOS_CARD.module.headingNavi(); EPOS_CARD.module.headingNavi2(); }); });