/* * module.funcs.js */ (function($) { /* * ページ読み込み時fadein */ $.fn.bodyFadeIn = function(options){ var defaults = { spd: 1000, esg: "easeInOutQuad", complete: function(){ } }; var init = $.extend( defaults, options ); if(ua.IE8) return false; $('body').css("opacity","0"); this.bind("load", function() { $('body').animate({ opacity:1 }, { duration:init.spd, easing:init.esg, complete:init.complete }); }); } /* * ページ内スクロール */ $.fn.innerPageScroll = function(options){ var defaults = { spd: 1000, eas: "easeInOutQuad", adj: [0, 0, 0, 0, 0, 0, 0], rsp: rsp, complete: function(){ } }; var init = $.extend(defaults, options); var adj = 0; var $b = $("body"); if(ua.IE || ua.ff) $b = $("html"); $(this).find("a").click(function() { var href= $(this).attr("href"); var $t = $(href == "#" || href == "" ? "html" : href); var pos = $t.offset().top; var i = 0; for(var key in init.rsp){ if($("body").hasClass(key)) adj = init.adj[i]; i++; } $b.animate({ scrollTop: pos+adj }, { duration:init.spd, easing:init.eas, complete:init.complete }); return false; }); } /* * navカレントハイライト */ $.fn.navHighlight = function(options){ var defaults = { bind: true, wordEnd: "_h", removeClass: "hover" }; var init = $.extend(defaults, options); this.find("li").each(function(){ var $img = $(this).find("img"); if (!this) return false; if($("body").attr("id") == $(this).attr('data-cat')){ $img.removeClass(init.removeClass); var src = $img.attr("src"); var ftype = src.substring(src.lastIndexOf('.'), src.length); var hsrc = src.replace(ftype, init.wordEnd + ftype); if(!init.bind) hsrc = src.replace(init.wordEnd + ftype, ftype); var img = new Image(); img.src = hsrc; $img.attr('src', hsrc); } }); } /* * unbindhover */ $.fn.unbindhover = function(options){ if (!this) return false; return this.unbind("mouseenter").unbind("mouseleave"); } /* * img hoverchange */ $.fn.imgHoverChange = function(options){ var defaults = { wordEnd: "_h" }; var init = $.extend(defaults, options); this.each(function(){ if (!this) return false; var src = $(this).attr("src"); var ftype = src.substring(src.lastIndexOf('.'), src.length); var hsrc = src.replace(ftype, init.wordEnd + ftype); var img = new Image(); img.src = hsrc; $(this).css({ "cursor":"pointer" }); $(this).hover(function(){ if(ua.SD) return false; $(this).attr("src",hsrc); }, function(){ $(this).attr("src",src); }); }); } /* * img hoverfade */ $.fn.imgHoverFade = function(options){ var defaults = { spd: 1000, esg: 'easeOutQuint', opacity: 0.6 }; var init = $.extend( defaults, options ); this.each(function(){ if (!this) return false; var status = { duration: init.spd, easing: init.esg }; $(this).css({ "cursor":"pointer" }); $(this).hover(function(){ if(ua.SD) return false; $(this).stop().animate({ opacity: init.opacity }, status); }, function(){ $(this).stop().animate({ opacity: 1.0 }, status); }); }); } /* * 内部img hoverchange */ $.fn.innerImgChange = function(options){ var defaults = { wordEnd: "_h" }; var init = $.extend(defaults, options); this.each(function(){ if (!this) return false; var $img = $(this).find(".change") var src = $img.attr("src"); var ftype = src.substring(src.lastIndexOf('.'), src.length); var hsrc = src.replace(ftype, init.wordEnd + ftype); var img = new Image(); img.src = hsrc; $(this).css({ "cursor":"pointer" }); $(this).hover(function(){ if(ua.SD) return false; $img.attr("src",hsrc); }, function(){ $img.attr("src",src); }); }); } /* * 内部img hoverfade */ $.fn.innerImgFade = function(options){ var defaults = { spd: 1000, esg: 'easeOutQuint', opacity: 0.6 }; var init = $.extend(defaults, options); this.each(function(){ if (!this) return false; var status = { duration: init.spd, easing: init.esg }; $(this).css({ "cursor":"pointer" }); $(this).hover(function(){ if(ua.SD) return false; $(this).find(".fade").stop().animate({ opacity: init.opacity }, status); }, function(){ $(this).find(".fade").stop().animate({ opacity: 1.0 }, status); }); }); } /* * 高さ揃え */ $.heightAjust = function (options){ var defaults = { bp: [400, 479, 639, 767, 959, 1280, 1500], bodyClass:["portrait", "sp", "landscape", "middle", "tablet", "base", "wide"], target: "", children: false }; var init = $.extend( defaults, options ); $(window).on( "load resize " , function (){ // セレクタ数分処理 for ( var name in init.target){ // ブラウザサイズに合わせて変数に代入し調整関数へ if (size.w <= init.bp[0]){ adjustfunc(init.target[name].attatchcase[0], init.bodyClass[0], init.target[name], name); } else if (size.w > init.bp[0] && size.w <= init.bp[1]){ adjustfunc(init.target[name].attatchcase[1], init.bodyClass[1], init.target[name], name); } else if (size.w > init.bp[1] && size.w <= init.bp[2]){ adjustfunc(init.target[name].attatchcase[2], init.bodyClass[2], init.target[name], name); } else if (size.w > init.bp[2] && size.w <= init.bp[3]){ adjustfunc(init.target[name].attatchcase[3], init.bodyClass[3], init.target[name], name); } else if (size.w > init.bp[3] && size.w <= init.bp[4]){ adjustfunc(init.target[name].attatchcase[4], init.bodyClass[4], init.target[name], name); } else if (size.w > init.bp[4] && size.w <= init.bp[5]){ adjustfunc(init.target[name].attatchcase[5], init.bodyClass[5], init.target[name], name); } else { adjustfunc(init.target[name].attatchcase[6], init.bodyClass[6], init.target[name], name); } } }); // 調整処理 function adjustfunc(num, bclass, target, key){ var $t = $(key); if(init.children){ $t = $t.find(init.children); }else{ $t = $t.children(); } if(!num) $t.css({ "height" : "auto" }); $t.each( function (){ var index = $t.index( this ); if (index%num == 0){ var h =0; for ( var i = 0; i h) h = $t.eq(index+i).height(); } for ( var j = 0; j init.bp[0] && size.w <= init.bp[1]){ current = init.bodyClass[1]; } else if(size.w > init.bp[1] && size.w <= init.bp[2]){ current = init.bodyClass[2]; } else if(size.w > init.bp[2] && size.w <= init.bp[3]){ current = init.bodyClass[3]; } else if(size.w > init.bp[3] && size.w <= init.bp[4]){ current = init.bodyClass[4]; } else if(size.w > init.bp[4] && size.w <= init.bp[5]){ current = init.bodyClass[5]; } else{ current = init.bodyClass[6]; } }, 200); }); /* 地図の生成 */ function creatmap(){ var infowindow = new Array; var marker = new Array; var latlng = new google.maps.LatLng(init.center.lat, init.center.long ); if(ua.SD) init.draggable = false; //スマホ時はドラッグ不可 var opts = { zoom: init.zoom, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP, scaleControl: init.scaleControl, navigationControl: init.navigationControl, draggable: init.draggable, scrollwheel: init.scrollwheel }; var map = new google.maps.Map(document.getElementById(init.secid), opts); $.each(init.plot, function(i) { /* 情報ウィンドウ */ infowindow[i] = new google.maps.InfoWindow({ content: '
' + init.plot[i].content + '
' }); marker[i] = new google.maps.Marker({ position: new google.maps.LatLng(init.plot[i].lat, init.plot[i].long), map: map, icon: init.plot[i].icon }); if(init.plot[i].initinfo) infowindow[i].open(map, marker[i]); google.maps.event.addListener(marker[i], 'click', function(){ if(init.plot[i].info) infowindow[i].open(map, marker[i]); }); }); } } })(jQuery);