/* ------------------------------------------- * @namespace ------------------------------------------- */ var EPOS_CARD_over = EPOS_CARD_over || {}; /* ------------------------------------------- * @noConflict ------------------------------------------- */ jqNew = jQuery.noConflict(); if($ === undefined){ $ = jQuery; } j$ = jQuery || jqNew; /* ------------------------------------------- * @constructor ------------------------------------------- */ EPOS_CARD_over.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_over.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_over.module = function(){ var u = new EPOS_CARD_over.Util(); return { /* * @method initialize * - 初期化 */ initialize: function(){ this.rollover(); this.swapImg(); this.floationgControl(); this.IsAccordion(); }, /* * @method rollover * - ロールオーバー */ rollover: function(){ if(u.isNotPC() || u.isRangeSP()){ return false; } var $elm = j$(".rollover02"), 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 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 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 IsAccordion */ IsAccordion: function(config){ var c = $.extend({ elm: ".IsToggleWrap", trigger: ".IsToggleTrigger", target: ".IsToggleContent", speed: 300, openNm: "open" },config); // vars var $elm = $(c.elm), $trg = $(c.trigger); if($elm.length === 0){ return false; } // setting $(c.target).not("." + c.openNm).hide(); // trigger $trg.on("click",function(){ var self = $(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); } }); } }; }(); /* ------------------------------------------- * @init ------------------------------------------- */ j$(function(){ var u = new EPOS_CARD_over.Util(); EPOS_CARD_over.module.initialize(); });