当应用程序调用手机键盘时(编辑文本时),地图窗格会变换,如下图所示: 可能是什么原因,我添加了这样的地图:
map = L.map('main').setView([9.123011560267038, 125.53513369515711], 15);
L.tileLayer('./tile/cbr_new_design_tms2/{z}/{x}/{y}.png', {
minZoom: 14,
maxZoom: 16,
tms: true
}).addTo(map);
HTML:
<div class="panel" id="main" style="padding:0;overflow:hidden" data-title="Main">
<header>
<h1>Main</h1>
<a href="#modal1" class="button big icon question" style="float:right;padding-top:0;outline:0" data-transition="up-reveal"></a>
<a href="#modal" class="button big icon settings" style="padding-top:0;outline:0" data-transition="up-reveal"></a>
</header>
</div>
更新:我刚注意到,当调用键盘时,传单会添加class="leaflet-map-pane" style="transform: translate3d(XXpx, XXpx, XXpx);"
。它以某种方式转换地图窗格。那么,我如何防止传单转换呢?
答案 0 :(得分:0)
正如@ghybs指出的那样,Cordova配置选项很有可能解决这个问题。
否则,如果您在用户隐藏键盘时可以运行ome javascript代码,请在地图实例上调用invalidateSize()
方法。
答案 1 :(得分:0)
通过评论leaflet-src.js
:
_onResize: function () {
L.Util.cancelAnimFrame(this._resizeRequest);
this._resizeRequest = L.Util.requestAnimFrame(
function () { this.invalidateSize({debounceMoveend: true}); }, this, false, this._container);
},