У меня проблема с картой Leaflet в приложении Vue.js, использующем инфраструктуру Vuetify.
Я пытаюсь заставить карту занимать весь экран (за исключением верхней навигационной панели) но карта изменяет размеры / перемещает себя по вертикали внутри страницы, когда я нажимаю кнопки масштабирования.
Вот два снимка экрана с той же проблемой из JSFiddle, показанные ранее:
и после (обратите внимание на смещение карты вверх, скрывая часть кнопок масштабирования под панелью навигации):
Насколько я могу судить,проблема возникает из-за того, что инфраструктура Vuetify помещает отступ в верхнюю часть элемента контейнера карты, располагая его (правильно) под панелью навигации.Однако при нажатии кнопок +/- масштабирования это заполнение исчезает и карта смещается вверх.Однако я понятия не имею, почему отступы исчезли бы так (при условии, что это реальная проблема).
Эта проблема не возникает, если карта сделана значительно меньше высоты страницы (например, высота): 85%; в моем полном заявлении).Интересно, что я получаю эту проблему только в скрипке в Chrome.В Firefox карта остается в своем первоначальном положении.
Я повторил проблему в JSFiddle , используя этот код:
Javascript:
new Vue({
el: '#app',
data: () => ({
map: null,
tileLayer: null
}),
mounted: function(){
this.map = L.map('map').setView([38.864720, -77.088544], 12);
this.tileLayer = L.tileLayer( 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/rastertiles/voyager/{z}/{x}/{y}.png',
{
maxZoom: 18,
});
this.tileLayer.addTo(this.map);
}
})
HTML:
<div id="app">
<v-app id="map-example">
<v-toolbar color="indigo" dark fixed app style="z-index: 1000;">
<v-toolbar-title>Application</v-toolbar-title>
</v-toolbar>
<v-content>
<v-container fluid>
<v-layout>
<div id="map">
</div>
</v-layout>
</v-container>
</v-content>
</v-app>
</div>
CSS:
body {
margin: 0;
padding: 0
}
.container {
padding: 0;
width: 100%;
margin: 0;
}
#map {
height: 500px;
width: 100%;
z-index: 100;
}
Карта в Fiddle (и мое настоящее приложение) подпрыгивает вверх под панелью навигации при нажатии кнопок масштабирования.Как заставить его оставаться на месте и занимать все окно под панелью навигации?