0

ajax (smartAjax プラグイン) でコンテンツを取得している Web サイトで Google マップを使用しています。ただし、地図は「お問い合わせ」ページに配置されており、最初にこのページを呼び出すと、地図全体が表示されます。つまり、「私たちのコンセプト」に戻り、もう一度「お問い合わせ」をクリックすると、地図が表示されます。部分的にしか現れません。私は今これと何週間も戦っていますが、これについては本当に何の助けも得られません.

ここを見て、ajaxで呼び出された後にマップを完全に表示するために何ができるか教えてくれる人はいますか?

ここにあります: ウェブサイトはこちらをご覧ください。

助けていただければ幸いです。

乾杯

UPDATE ソリューションはjayarjoによって投稿されました

google.maps.event.addListenerOnce(map, 'idle', function() {
    google.maps.event.trigger(map, 'resize');
    map.setCenter(point); // be sure to reset the map center as well
});

これは、ajax を使用するときに含める必要があるものであり、美しく機能します。

4

2 に答える 2

0

コメントに書いたように、JavaScriptコードにはいくつかのバグがあります。これらを修正すると、この問題も修正される可能性があります。

ただし、簡単なハックは次の行を書くことです。

google.maps.event.trigger(map, 'resize'); 

コードのどこかで、ユーザーが[お問い合わせ]タブに変更した直後。

于 2012-06-13T10:00:21.000 に答える
0

mapinitialize()関数を変更してみることができます。mapリンクがクリックされるたびにを初期化しないでください。

var map;
function initialize() {
    var myOptions = {
        center: new google.maps.LatLng(-34.397, 150.644),
        zoom: 8,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map(document.getElementById("map"), myOptions);
} 
于 2012-06-13T11:39:35.080 に答える