此代码使地图的 div 宽度最大但高度为 0(% 值无关紧要,它始终为 0)
<div id="map" style="width: 100%; height: 100%;"></div>
这很有效,因为它将地图的 div 设置为固定大小,但显然不是我想要的。
<div id="map" style="width: 100%; height: 500px;"></div>
有人经历过吗?有人建议如何解决这个问题吗?
我也在使用 jquery(-mobile)
谢谢
此代码使地图的 div 宽度最大但高度为 0(% 值无关紧要,它始终为 0)
<div id="map" style="width: 100%; height: 100%;"></div>
这很有效,因为它将地图的 div 设置为固定大小,但显然不是我想要的。
<div id="map" style="width: 100%; height: 500px;"></div>
有人经历过吗?有人建议如何解决这个问题吗?
我也在使用 jquery(-mobile)
谢谢
这是我的修复:
function fixContentHeight(){
var viewHeight = $(window).height();
var header = $("div[data-role='header']:visible:visible");
var navbar = $("div[data-role='navbar']:visible:visible");
var content = $("div[data-role='content']:visible:visible");
var contentHeight = viewHeight - header.outerHeight() - navbar.outerHeight();
content.height(contentHeight);
map.updateSize();
}
您需要为 HTML 和 Body 提供 100% 的高度:
html, body {
height: 100%;
}
如果您使用 jquery,这可以完美地将您的地图“拉伸”到持有它的容器 div,无论您的 css 为地图设置了什么:
$(window).resize(function () {
//$('#log').append('<div>Handler for .resize() called.</div>');
var canvasheight=$('#map').parent().css('height');
var canvaswidth=$('#map').parent().css('width');
$('#map').css("height", canvasheight);
$('#map').css("width", canvaswidth);
});
顺便说一句,您可以将其称为早期的,最好在$(document).ready(function(){ /* here */ }块中。
我遇到了这个话题,因为我想将离子选项卡(ionicframework)中的地图高度设置为 100%。即使这不是最初的问题,也可能其他人遇到同样的问题。除了前面的建议,您还必须将 .scroll 类的高度设置为 100%:
html, body {
width: 100%;
height: 100%;
}
.scroll {
height: 100%;
}
#map {
height: 100%;
}
我通过添加以下内容为我的用例解决了这个问题:
setInterval(function(){map.updateSize();}, 500);
更新:这不是我在 OpenLayers 3 下所做的事情。我在使用 OpenLayers 2 时这样做了。我并不是说它很漂亮,但它足以满足我的需要。