gpt4 book ai didi

twitter-bootstrap - 传单 map 在 bootstrap 3.0 模式中未正确显示

转载 作者:行者123 更新时间:2023-12-03 21:00:50 30 4
gpt4 key购买 nike

我有一个大问题。我想以模式打开传单 map 。
但 map 显示不正确。瓷砖没有加载。

这是脚本:

http://bootply.com/98730

<a href="#myModal" role="button" class="btn btn-primary" data-toggle="modal">Open Map</a>

<div id="myModal" class="modal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Map</h4>
</div>
<div class="modal-body">
<div class="modal-body" id="map-canvas"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn" data-dismiss="modal" aria-hidden="true">OK</button>
</div>
</div>
</div>
$.getScript('http://cdn.leafletjs.com/leaflet-0.7/leaflet.js',function(){

/* map settings */
var map = new L.Map('map-canvas');
var cloudmade = new L.TileLayer('http://{s}.tile.cloudmade.com/f1376bb0c116495e8cb9121360802fb0/997/256/{z}/{x} /{y}.png', {
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, Imagery © <a href="http://cloudmade.com">CloudMade</a>',
maxZoom: 18
});
map.addLayer(cloudmade).setView(new L.LatLng(41.52, -71.09), 13);


});

非常感谢任何帮助

最佳答案

我认为正在发生的事情是,当创建 map 时,您的“ map Canvas ”元素的容器宽度/高度尚未调整为模式对话框的宽度/高度。这会导致 map 大小不正确(小于)应有的大小。

您可以通过调用 map.invalidateSize() 来解决此问题。 .这将重新调整 L.Map 容器的宽度/高度边界。

您可以通过 Hook 到显示 Bootstrap 模式的事件来自动调用它。

$('#myModal').on('show.bs.modal', function(){
setTimeout(function() {
map.invalidateSize();
}, 10);
});

将此代码插入您的 JavaScript。当模态显示时, map 将使其大小无效。超时是因为模态显示和添加到 DOM 可能需要一些动画/过渡时间。

关于twitter-bootstrap - 传单 map 在 bootstrap 3.0 模式中未正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20400713/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com