我正在使用jquery mobile 我的页面
<div data-role="page" id="mapView" data-transition="slide">
<div data-role="header" data-theme="d" data-position="fixed">
<h1>
<a href="" data-theme="b" data-role="button" data-mini="true" onclick="showDirection()">Get Direction</a></h1>
</div>
<p id="atmBoothDetails" >
</p>
<div data-role="content" id="mapViewContent">
<div id="map-canvas">
</div>
</div>
css
#map-canvas
{
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
为什么地图未在移动设备中显示?
答案 0 :(得分:3)
这还不够。您的 #map-cnvas
&lt; div&gt;将仅涵盖内容div的全部大小。不幸的是,内容div( data-role="content"
)永远不会覆盖页眉和页脚留下的完整可用高度。
这就是你需要手动调整内容div高度的原因。
#content {
padding: 0;
position : absolute !important;
top : 40px !important;
right : 0;
bottom : 40px !important;
left : 0 !important;
}
可以在此处找到工作jsFiddle示例:http://jsfiddle.net/Gajotres/7kGdE/
如果没有页眉和页脚,请将顶部和底部替换为0。
function getRealContentHeight() {
var header = $.mobile.activePage.find("div[data-role='header']:visible");
var footer = $.mobile.activePage.find("div[data-role='footer']:visible");
var content = $.mobile.activePage.find("div[data-role='content']:visible:visible");
var viewport_height = $(window).height();
var content_height = viewport_height - header.outerHeight() - footer.outerHeight();
if((content.outerHeight() - header.outerHeight() - footer.outerHeight()) <= viewport_height) {
content_height -= (content.outerHeight() - content.height());
}
return content_height;
}
这是一个javascript解决方案。
这里也是一个有效的jsFiddle示例:http://jsfiddle.net/Gajotres/xbr2v/
如果您想了解有关此问题的更多信息,请查看此 article ,您还可以找到一些有用的示例。
答案 1 :(得分:0)
那是因为页面占用的位置尽可能少。您使用100%的宽度和高度,但页面的容器没有实际高度。您必须以编程方式执行此操作。选中$(window).height();
以获取视口的实际高度并更改#map-canvas
高度。您将不得不对您可能拥有的任何页眉和页脚进行一些调整。