我已经问过这个问题here,不幸的是问题无法解决,所以我在这里问:)
我有一个JQM页面,其中我显示了一张地图。愚蠢的是,要正确显示地图,我必须重新加载页面。
这是地图在第一次加载页面时的显示方式:
这是刷新页面后显示的方式:
这是我的代码:
var map;
require([
"esri/map",
"dojo/dom",
"esri/layers/ArcGISTiledMapServiceLayer",
"dojo/domReady!"
],
function (Map, dom, Tiled) {
map = new Map("map", {
logo: false,
minZoom: 1,
maxZoom: 11
});
var luftbild = new Tiled(URL);
map.addLayer(luftbild);
});
这就是我为地图设计样式的方式:
<style>
html, body, #map {
padding: 0;
margin: 0;
height: 100%;
}
</style>
以及我如何展示它:
<div data-role="page" style="background-color:red" ...>
<!--Header-->
....
<!--/Header-->
<!--Content-->
<div id="map">
</div>
<!--/Content-->
</div>
修改
在输入以下代码之后:
$(document).on("pageshow","#page",function(){ // initialize map and show
});
地图现在看起来像这样:
是否可以将宽度和高度设置为100%?
答案 0 :(得分:3)
地图需要具有定义宽度和高度的画布。在Jquery中,移动处理页面的方式与普通的html页面不同。即,一次可见一页(即具有data-role = page的div),而其他页则不可见。因此,应该使用名为pageshow的jquery移动特定页面事件来初始化任何页面上的地图
$(document).on("pageshow","#page",function(){ // initialize map and show
});