Leaflet - 解决地图容器尺寸变化,地图有空白的问题

 size变化,地图重新加载

setTimeout(()=>{
    map.invalidateSize(true)
}, 400)

在一个vue + leaflet的项目中,左侧目录可以进行伸缩,右侧地图自适应大小;

1. 布局

点红色按钮,弹入、弹出左侧目录列表。

整体是flex,设置左侧为一定的宽度,右侧设置flex-grow:1自适应剩余空间

伸缩通过,修改左侧宽度:width:0px 实现;

2. 问题

当地图的容器宽度变化后,地图的图层并未及时加载,拖动地图后仍然有一部分是空白的;

3. 解决

在红色按钮点击时(即:宽度变化后),调用:

setTimeout(()=>{
    map.invalidateSize(true)
}, 400)

我这里使用一个状态变量,去控制左侧列表的class;所以在Vue的watch当中,判断该状态变化时就去调用上面的代码;

使用this.$nextTick() 可能会不起作用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值