2011-08-12 6 views
0

ユーザーが地図の小さなバージョンを移動したときにGoogleマップのサイズを変更したい。マウスオーバーでGoogleマップのサイズを変更する

JS:

google.maps.event.addListener(map, 'mouseover', function() { 
     $('#map_canvas').addClass('over',200); 
}); 
google.maps.event.addListener(map, 'mouseout', function() { 
     $('#map_canvas').removeClass('over',200); 
}); 

HTML要素だけで単純な<div>

<div id="map_canvas"></div> 

以上のクラスでの問題は、私は、マップナビゲーション要素を置くとマウスアウトイベントもトリガされていることですより大きなビューのためにいくつかのスタイルを追加します。 jQuery UIのアニメーション化されたクラス変更を使用してアニメーション化されています。

答えて

1

マップの包含divにバインドしたmouseenterとmouseleaveを試しましたか?マップオブジェクトのイベントリスナーとしてmouseout/mouseoverではなくそのようにしましたか?

$('#map').mouseenter(function() { 
/* add class */ 
}).mouseleave(function() { 
/*remove class */ 
}); 
+0

はい、しかし、キャンバスへのGoogleマップをロードした後/ DOMのコンテンツが右ロードされた後にそれが追加されますので、イベントは、 –

+0

ああ真のトリガされませんDIV? live( 'mouseleave'、function(){...}); '?( 'mouseleave'、function(){/ * add .. * /})あなたは' $( '#map'ライブを使用すると、ドキュメントの準備ができた後に作成および/または変更された要素にイベントをバインドできます。私はそれが動作するはずだと思いますが、私はそれを最初にテストしていません。 mouseoutがうまく動作しなかったのは、 'mouseoutが子要素からも移動したとき(つまりnavコントロール上に)、mouseoutが呼び出されたときに発生したためです.'(jquery.com ) – Benno

+0

それはまたバウンス効果を作ります...どうやらGoogle JSはjQueryを妨害します。私は今、遅延タイマーを使って修正しました。 –

関連する問題