gpt4 book ai didi

javascript - 使用 Material Angular 和 Leaflet 切换 sidenav 时调整 sidenav-content 的大小

转载 作者:太空狗 更新时间:2023-10-29 18:22:20 30 4
gpt4 key购买 nike

我正在使用 Angular、Angular-Material 和 Leaflet 创建一个具有 sidenav 和 map 的网络。

<mat-sidenav-container class="map-bar-container">
<mat-sidenav #sidenav mode="side" opened class="nav">
<app-sidenav></app-sidenav>
</mat-sidenav>

<mat-sidenav-content class="cmap">
<app-map></app-map>
</mat-sidenav-content>
</mat-sidenav-container>

问题是,当切换 sidenav 时,sidenav-content 的大小调整正确,但里面的 map 没有,而且 map 的中心和它的限制是偏移的。如果您调整窗口大小(打开开发控制台也可以), map self 中心正确并且它正常工作

我在 stackblitz 上重现了这个问题:https://stackblitz.com/edit/angular-u3mrrv

我已经尝试了 mat-sidenav-container 的 autosize 属性,但它没有用。

您会注意到问题在开始时 map 偏移了,如果您调整窗口大小它会修复,然后如果您切换 sidenav,它会再次偏移。

我认为问题是传单没有注意到它的容器正在改变大小,并且在切换 sidenav 时它没有更新,只是在调整窗口大小时。

有什么想法吗?

最佳答案

引用leaflet.js documentation ,您可以调用 map.invalidateSize() 来触发重新布局。

无论何时打开/关闭 sidenav 组件,都应调用此方法。

关于javascript - 使用 Material Angular 和 Leaflet 切换 sidenav 时调整 sidenav-content 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53796791/

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