我使用 OpenLayers 来显示地图,并使用 AdminLte 来显示界面。
我的问题:当折叠给定页面上的主要左侧边栏时,所有框及其包含的内容都会更改大小(我真的不知道如何),因此地图也会变大。问题是,当它发生时,地图上显示的所有特征显然都改变了位置,不再是它们应该在的位置。
我想要什么:在侧边栏折叠后重绘地图。
有什么建议吗?
我试过:
$('.navbar-collapse').on('shown.bs.collapse', function() {
map.updateSize();
});
Run Code Online (Sandbox Code Playgroud)
和:
$('.sidebar').on('shown.bs.collapse', function() {
map.updateSize();
});
Run Code Online (Sandbox Code Playgroud)
但无济于事...
编辑:我的问题类似于这个问题:OpenLayers:如何在地图 div 的流体 css 渲染后重新对齐鼠标坐标和矢量图层,但他的解决方案对我不起作用:)
编辑 2:澄清一下:我认为解决我的问题的方法是在侧边栏完成折叠时调用 map.updateSize() 方法。问题是我不知道如何捕捉侧边栏完成折叠/展开的时刻!