マップが必要な jquery モバイル アプリを作成しています。
地図については、Google マップ サービスを使用する予定です。
方向の変化を説明するために、次のようなものを使用しようとしました:
<script>
$('#page-map').live('pagecreate', function(event) {
var map = $('#map_canvas').gmap({
...
});
...
$(window).resize(function() {
$('#map_canvas').width($(window).width());
$('#map_canvas').height($(window).height());
});
)};
</script>
問題: このコードは、デバイスが回転したときにマップ キャンバスのサイズを正しく変更しますが、jquery mobile resize() がスキップされたように見えます (たとえば、URL バーが表示されます...)。
「resize(function() {」コードに次のようなものを追加することすらありません。
google.maps.event.trigger(map, 'resize');
役に立ちます。
更新: この問題は、ページをテストしている唯一のモバイル デバイス (Samsung Galaxy Mini (GT-S5570)、Android 2.3.4 (Gingerbread)) でのみ発生します。デスクトップ PC でウィンドウのサイズを変更するときは発生しません(つまり、デスクトップ ブラウザでは、resize() バインディングがなくても、ブラウザのウィンドウが拡大されたときに map_canvas が正しく塗りつぶされます。これは、map_canvas で幅/高さが 100% であるためだけです... )