传单显示:无(bootstrap5 tabnav)

t9aqgxwy  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(382)

在加载页面时,尝试在选项卡后面加载传单Map(显示:无),这需要花费大量时间。我知道有必要使用invalidatesize()。
好的,使用invalidatesize(),它可以在单击选项卡“kaartweergave”后加载传单Map。
问题是使Map符合“边界”。
在我的传单脚本中添加此内容时:

setInterval(function () {
 mymap.invalidateSize();
 mymap.fitBounds(bounds);
}, 100);

它可以工作,但是,当尝试缩放[+]或[-]时,100毫秒后,Map将由setinterval函数重置。因此,尝试设置超时功能(一次性加载):

setInterval(function () {
 mymap.invalidateSize();
}, 100);

setTimeout(function () {
 mymap.fitBounds(bounds);
}, 100);

但是settimeout函数不起作用。
要获得更好的解释并查看完整的代码,请转到此测试网页并单击选项卡“kaartweergave”(请参阅源代码)。
希望有人能帮助我,我花了很多时间尝试和浏览internet/stackoverflow,找到了一个解决方案,但运气不佳:(

fcipmucu

fcipmucu1#

您可以侦听选项卡的单击事件,然后调用Map函数:

function startMap(){
  setTimeout(function(){
    mymap.invalidateSize();
    mymap.fitBounds(bounds);
  }, 200)
}
var mapTab = document.getElementById('leaflet-map-tab')
L.DomEvent.on(mapTab,'click',startMap)

不需要 setInterval

相关问题