始める前に、私はすでに次の SO 記事を上から下まで読み、解決策を複製しようとしましたが、今のところできないことを明確にしたいだけです。
Foundation の Google Map API がモーダルを正しく表示しないことを明らかにする
Reveal Modal 内の Google Map API が完全に表示されない
google.maps.event.trigger(map, 'resize') の使い方
Zurb のファウンデーション イシュー リストはこちら - > https://github.com/zurb/foundation/issues
私の問題は同じようです.http://simplicitdesignanddevelopment.com/Fannie%20E%20Zurb/foundation/contact_us.htmlで彼のソースコードをチェックしたところ、彼は修正されたようですが、私は修正できません.
私の問題を引き起こしているのが Foundation 3 と 4 の違いであるかどうかはわかりません (それらの SO 投稿はほぼ 1 年前のものであるため) が、いずれにせよ、サイズ変更メソッドが機能しているようには見えません。
db の基本ページへのリンクは次のとおりです -> http://db.tt/gdl3wVox
ご覧のとおり、小さな地図は問題なく動作しますが、[大きな地図を表示] のリンクをクリックすると、2 つの問題があります。
- 主な問題 - マップの 1/3 しかレンダリングされていません。Chrome または IE で要素を検査するか、Dev Tools (F12) を開くと、マップが再レンダリングされ、div の全幅に収まります。
- マイナーな問題 - 表示されたマップは、小さいマップのようにマーカーの中心に配置されていません。
このページに 2 つの要素を追加する以外、foundation.css はカスタマイズされていません。したがって、彼らのスタイルを掘り下げる必要はありません。
#mini-map {
min-width: auto;
max-width: 100%;
width: 220px;
min-height: auto;
max-height: 100%;
height: 154px; }
#big-map {
min-width: auto;
max-width: 100%;
width: 600px;
min-height: auto;
max-height: 100%;
height: 300px; }
google.maps.event.trigger(map, 'resize');
他の投稿で説明されているように修正を実装しました( 2つのマップがあるため、にmap
置き換えます)bigmap
<script>
var ourLocation = new google.maps.LatLng(46.213769, -60.266018);
function initialize() {
var mapOptions = {
center: ourLocation,
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
minimap = new google.maps.Map(document.getElementById("mini-map"), mapOptions);
bigmap = new google.maps.Map(document.getElementById("big-map"), mapOptions);
minimarker = new google.maps.Marker({
map: minimap,
draggable: false,
animation: google.maps.Animation.DROP,
position: ourLocation
});
bigmarker = new google.maps.Marker({
map: bigmap,
draggable: false,
animation: google.maps.Animation.DROP,
position: ourLocation
});
}
initialize();
</script>
<script type="text/javascript">
$(document).ready(function () {
$('#myModal1').click(function () {
$('#myModal').reveal();
google.maps.event.trigger(bigmap, 'resize');
});
});
</script>
しかし、このスクリプト:
<script type="text/javascript">
$(document).ready(function () {
$('#myModal1').click(function () {
$('#myModal').reveal(); /* Problem is here */
google.maps.event.trigger(bigmap, 'resize');
});
});
</script>
私にエラーを引き起こしているようです。Chrome の Dev Tool でコンソールを表示すると、次のように表示されます。
Uncaught TypeError: Object #<Object> has no method 'reveal' map.html:96
ドリルダウンすると、別の 2 つのエラーが表示されます。
(anonymous function) map.html:96
handler.proxy zepto.js:933
上記のトピックで修正を複製したため、なぜ機能しないのかわかりません。「解決済み」の問題を再訪することに罪悪感を覚えますが、これを何時間もいじりましたが、以前の投稿のように機能するようには見えません。
明確化していただければ幸いです。事前に感謝します。