Googleマップの画面ロック
最近仕事で、大体個人店などのページには、決まってGoogleマップを使用します。
・・・が、以前より鬱陶しいと思っていた、Googleマップ。
いえ、Googleマップ自体は地図としては本当に素晴らしい機能です。
ですがね。
マウスでページをずっとスクロールしている際、もしくは、スマホでスワイプしてる際に、それらがiframe領域にちょうど当たると・・・
「マップに引っかかって、ページがスクロール出来ねえ!!」
↓
「おかげでズームしすぎて所在地わかんねぇ!!」
みたいな。
よくあるパターンですね。鬱陶しい。
そこで、簡易的な対策として、Googleマップ自体にブロックタグを網掛けしとけばいけんじゃね?みたいな発想に行き着いた。
ものすごく短絡的ではありますがね。
とりあえずjQuery使ってスクリプトを作成した。
設置例:
<!– <head>のとこに記述 –>
<script src="maplock.js" type="text/javascript" charset="utf-8"></script>
<script>
$(document).ready(function(){
$(‘#maplock’).maplock();
});
</script>
<style>
#maplock{
padding-top:25%;
width:100%;
position:relative;
z-index:1;
}
#maplock iframe{
width:100%;
height:100%;
position:absolute;
z-index:10;
top:0;
left:0;
}
</style>
<!– Googleマップ本体 –>
<div id="maplock"><iframe src="https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d2869.235633080917!2d144.231029!3d44.016525!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x5f6d348021cc16e1%3A0x5281c0d212d670f2!2z57ay6LWw5YiR5YuZ5omA!5e0!3m2!1sja!2sjp!4v1422342532492" frameborder="0" scrolling="no"></iframe></div>
以下を「maplock.js」で保存。
Javascript
(function($){
$.fn.maplock = function(options){
var maplockOptions = {
maplockBtn : ‘images/viewmap.png’,
maplockOpc : 0.5,
maplockClo : ‘#000000’,
maplockEas : ‘swing’,
maplockDur : 1000
};
var maplockSetting = $.extend(maplockOptions, options);
$(this).find(‘iframe’).wrap(‘<div class="maplockBase"></div>’);
$(this).find(‘.maplockBase’).append(‘<div class="maplockHit" style="width:100%;height:100%;position:absolute;top:0;left:0;z-index:100;cursor:pointer;"><div class="maplockLayer" style="width:100%;height:100%;position:absolute;top:0;left:0;z-index:200;background-color:’+maplockSetting.maplockClo+’;cursor:pointer;"></div><div class="maplockButton" style="width:100%;height:100%;position:absolute;top:0;left:0;z-index:300;cursor:pointer;background-image:url(‘+maplockSetting.maplockBtn+’);background-repeat:no-repeat;background-position:center center;"></div></div>’);
$(this).find(‘.maplockHit’).css({‘opacity’:’1.0′});
$(this).find(‘.maplockLayer’).css({‘opacity’:maplockSetting.maplockOpc});
$(this).find(‘.maplockHit’).click(function(){
$(this).stop(false,true).animate({‘opacity’:’0.0′},{
duraition : maplockSetting.maplockDur,
easing : maplockSetting.maplockEas,
complete : function(){
$(this).css({‘display’:’none’});
}
});
});
return(this);
}
})(jQuery);
以下はプラグインのプロパティ。
$(‘#maplock’).maplock({
maplockBtn:’images/button.png’, // ボタン用画像
maplockOpc:0.4, // 網掛けの透過度
maplockCol:’#CCCCCC’, // 網掛けの色
maplockEas:’linear’, // イージングの指定(easingプラグインある場合)
maplockDur : 500 // でゅれーしょん });
またそのうち頻繁に使うでしょうねー、俺がね。
