2

インフォウィンドウに関する私の唯一の問題は、その外観(つまり、コンテンツではなくバブル)をカスタマイズする方法がないことです。それを行う唯一の方法は、代わりに自分のオーバーレイを作成してスタイルを設定することだと思われます。しかし、テキストを選択できない(このオーバーレイの上にマウスをドラッグするとマップがパンする)、スクロールできない(オーバーレイにテキストがオーバーフローしたdivがある場合は、スクロールするとマップがズームインまたはズームアウトし、クリックする)などの問題が発生します。スクロールバーはスクロールしますが、同時にマップをパンします)。

現在、マウスオーバーイベントとマウスアウトイベントをキャッチして、ドラッグとズームを無効/有効にしていますが、テキストを強調表示できず、スクロールするものがないオーバーレイの領域でマウスホイールをスクロールすると、ページ要素が外側に表示されます。ウィンドウを上に移動するためのマップ。

他の誰かがこのような状況に遭遇しましたか?私は実際にこれをカバーするものを他に見たことがなく、解決策を見つけようとして髪を引き裂かないようにしています。

4

4 に答える 4

1

素晴らしいニュース。Firefoxで発生した問題は、オーバーレイの高さがマップコンテナよりも大きく、Googleマップが設定されていると想定したことが原因のようです。

オーバーフロー:非表示
どこか(私はそうは思わない)。自分で設定すると修正されました。次のステップは、オーバーレイコンテナにクリックイベントをキャッチさせ、ExtInfoWindowコードに示されているようにそれらが伝播されないことを確認することです:http://gmaps-utility-library.googlecode.com/svn/trunk/extinfowindow/1.0 /src/extinfowindow.js(初期化の終わり近く)。

于 2009-02-10T16:09:12.147 に答える
0

相対的なCSSポジショニングを使用してバブルを非表示/上書きするコンテンツを作成することで、バブルをカスタマイズできないという問題を回避できるかもしれません。

また、(暗闇の中でのショット)、よくわかりませんが、マーカーをカスタマイズして、一種のインフォウィンドウに変換することはできますか?

于 2009-02-10T13:37:33.963 に答える
0

スクロールするオーバーレイが必要でしたが、何らかの理由で、イベントの伝播を停止するダニエルのソリューションはうまくいきませんでした。しばらくして、別の解決策を思いつきました。

これは、Google マップ V3 と jQuery を使用していることを前提としています。

まず、地図のスクロールを無効にします。

var mapOptions = {
  // Other options here
  scrollwheel: false
};
map = new Map(document.getElementById('map-canvas'), mapOptions);

次に、マウス ホイール ハンドラー プラグインを使用してスクロールを元に戻しますが、必要な場合にのみ行います。

$mapDiv.mousewheel(function(e, delta, deltaX, deltaY){
  // If the event target is our overlay or its child, we won't zoom.
  if (!$(e.target).closest('.overlayWithScrolling').length) {
    map.setZoom(map.getZoom() + deltaY);
  }
});
于 2013-10-21T13:14:31.473 に答える