Sto provando a disegnare una mappa in un bambino flessibile che occupa spazio rimanente.Render map leaflet after flexbox calcola height
Ho un paio di intestazioni in cima al contenuto principale, e uno dei banner è a volte nascosto/rimosso, quindi sto usando flexbox in modo che l'intestazione possa andare via senza alterare la posizione degli altri elementi. I. E questo non funziona bene quando utilizzo le posizioni assolute.
Il mio problema è che sembra che il volantino calcoli la finestra delle mappe prima che Flexbox abbia calcolato l'altezza per la mappa div.
Esempio:
Ecco uno screenshot del volantino pensando l'altezza mappe è più piccolo di quanto dovrebbe essere.
Se controllo l'altezza elementi che sia corretto. Inoltre, se inserisco un timer e impone il volantino per invalidare la dimensione della mappa, la mappa viene nuovamente visualizzata all'altezza corretta.
HTML:
<body>
<div class="header">
Header
</div>
<div class="banner">
Banner
</div>
<main class="main">
<div class="nav">
<strong>Navigation</strong>
</div>
<div id="map" class="map-content"></div>
</main>
<script src="script.js"></script>
</body>
CSS:
html, body {
height: 100%;
width: 100%;
display: flex;
flex-direction: column;
}
.header {
height: 50px;
background-color: grey;
color: white;
}
.banner {
height: 50px;
background-color: lightgrey;
color: white;
}
.main {
display: flex;
flex: 1 1 auto;
flex-direction: row;
}
.map-content {
flex: 1 1 auto;
}
.nav {
background-color: #2A3D4A;
color: white;
width: 200px;
}
EDIT:
ho riprodotto il problema in un Plunk, evviva! Tuttavia, ancora non so esattamente cosa sta succedendo. Il problema si verifica solo quando includo ngAnimate nella mia applicazione. Non importa se uso ngAnimate o no.
Ecco il plunk che è rotto. Alla prima pagina di caricamento la mappa va bene. Fai clic sul link about, quindi torna alla mappa. Si noti che quando si torna indietro, solo circa la metà della mappa viene caricata. Registro l'altezza alla console Quando navighi lontano dalla mappa e ritorni sempre a circa metà delle dimensioni.
Che cosa fa l'animazione angolare per fare in modo che l'elemento diventi mezzo per dimensione per una frazione di secondo? Si tratta di un bug in angolare?
http://plnkr.co/edit/dyBH1Szo3lIEWajKqXWj?p=preview
La dimensione di '# map' cambia appena si fa clic su 'about' come mostrato in questo plunker: http://plnkr.co/edit/NRTW4TL29yc36omsbJ9M?p=preview – sqsinger
corretto. Buona scoperta E se non applico ngAnimate nella mia app la mappa il div non è più disponibile nella pagina about. Sembra sbagliato, perché il div è in agguato su una nuova rotta quando eseguo l'iniezione angolare nella mia app? – lostintranslation