[解決済み] google.maps.event.trigger(map, 'resize')の使い方
質問
私はJS初心者ですが、以前の質問の答えを見つけ、それが新たな質問を呼び起こし、再びここにやってきました。
私はGoogle Map APIを含むReveal Modalを持っています。 ボタンがクリックされると、Reveal Modalがポップアップし、Google Mapが表示されます。 問題は、マップの3分の1しか表示されないことです。 これは、リサイズトリガーを実装する必要があるためです。 私の質問は、google.maps.event.trigger(map, 'resize')をどのように実装すればよいかということです。 この小さなコードの断片をどこに置けばいいのでしょうか?
ここに私のテストサイトがあります。 Google Mapボタンをクリックすると、手元の問題を確認できます。 http://simplicitdesignanddevelopment.com/Fannie%20E%20Zurb/foundation/contact_us.html#
Reveal Modelスクリプトです。
<script type="text/javascript">
$(document).ready(function() {
$('#myModal1').click(function() {
$('#myModal').reveal();
});
});
</script>
私のGoogle Map Scriptです。
<script type="text/javascript">
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(39.739318, -89.266507),
zoom: 5,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
mapOptions);
}
</script>
Google Mapを保持するdivです。
<div id="myModal" class="reveal-modal large">
<h2>How to get here</h2>
<div id="map_canvas" style="width:600px; height:300px;"></div>
<a class="close-reveal-modal">×</a>
</div>
アップデート 2018-05-22
Maps JavaScript API バージョン 3.32 の新しいレンダラーのリリースに伴い、resize イベントが
Map
クラスがあります。
ドキュメントには
地図のサイズを変更した場合、地図の中心は固定される
フルスクリーンコントロールがセンターを保持するようになりました。
手動でリサイズイベントをトリガーする必要がなくなりました。
ソース https://developers.google.com/maps/documentation/javascript/new-renderer
google.maps.event.trigger(map, "resize");
はバージョン 3.32 以降は効果がありません。
解決方法を教えてください。
実は、あなたのソースコードには、いくつかの問題がありました。
-
は
initialize()
関数は作成されますが、呼び出されることはありません -
は
$(document).ready
は、jQueryがロードされた後に呼び出される必要があります。 -
は
map
は、(@Cristiano Fontes が言ったように)グローバル変数にする必要がありvar map
-
(重要)
click
イベントが呼び出されることはありません。2つのメソッドを組み合わせようとしている Zurbからの暴露 はダイアログを開くために提供しています(1つはJSで、もう1つはHTMLのみ)。JSのみのメソッドを使用する必要があります。 -
間違ったIDを使用している(
#myModal1
がHTML内に配置されることはありません)。
そして、今度は ソリューションのダウンロード (次回はダウンロード/JSFiddleを提供してください。私たちが自分で作成する必要はありません)。
お役に立ったでしょうか?
関連
-
[解決済み】node.js TypeError: path must be absolute or specify root to res.sendFile [JSONのパースに失敗しました]。
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み】SyntaxError: ChromeのJavascriptコンソールでUnexpected Identifierが発生する。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み】jQueryでチェックボックスがチェックされているかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】React Js: Uncaught (in promise) SyntaxError: 位置 0 の JSON で予期しないトークン < が発生しました。
-
[解決済み】Uncaught TypeError: nullのプロパティ'value'を読み取ることができない
-
[解決済み】JavaScriptのisset()に相当するもの
-
[解決済み] エラー。モジュールhtmlが見つからない
-
[解決済み】JavaScript ランタイムエラー:'$'が未定義です。
-
[解決済み】XMLパースエラー:ルート要素が見つからない コンソールの場所 FF
-
[解決済み】WebSocket接続に失敗しました。WebSocket のハンドシェイク中にエラーが発生しました。予期しない応答コードです。400
-
[解決済み】Vueのテンプレートまたはレンダー関数が定義されていない 私はどちらも使っていないのですが?
-
[解決済み】Jestが予期しないトークンに遭遇した
-
[解決済み】Uncaught TypeError: 未定義のプロパティ 'msie' を読み取れない - jQuery tools