IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Leaflet et fenêtre modale Bootstrap [Python 3.X]


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 491
    Par défaut Leaflet et fenêtre modale Bootstrap
    Bonjour,

    Je cherche à afficher une carte Leaflet dans une fenêtre modale Bootstrap:

    Dans ma page, j'ai un bouton, qui permet d'afficher la fenêtre modale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div class="row">
    	<div class="col-md-1"><button type="button" class="btn btn-primary btnInfos" data-bs-toggle="modal" data-bs-target="#infosModal" id="btnInfos" name="btnInfos">i</button></div>
    </div>
    J'ai ma fenêtre modale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <div class="modal fade" id="infosModal" tabindex="-1" aria-labelledby="infosModalLabel" aria-hidden="true">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <h1 class="modal-title fs-5" id="infosModalLabel">Projet <i><span id="PJ_NAME"></span></i></h1>
            <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
          </div>
          <div class="modal-body">
               <div>Ici  des infos</div>
    	   <div id="map" style="width:100%;height:300px" class="mapContainer"></div>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
          </div>
        </div>
      </div>
    </div>
    et à la fin de ma page, j'ai une balise <script> :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <script>
    $(document).ready(function(){
     
    	var preview = L.map('map').setView([48.08, -4.35 ], 10);
    	preview.attributionControl.addAttribution('<a href="https://www.my.fr" target="_blank">my</a>');
    		var layers = L.layerGroup().addTo(preview);
     
    		L.tileLayer('https://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    			attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a>',
    			maxZoom: 18
    		}).addTo(preview);
     
    	$(".btnInfos").on("click", function(e){
    		console.log("test");
     
    		setTimeout(function() {
    			preview.invalidateSize();
    		}, 100);
    	});
    	});
    });
    </script>
    Quand je clique sur le bouton, j'ai bien la fenêtre modale qui s'affiche, le message "test dans la console".
    Mais la carte ne se charge pas correctement : il n'y a pas toutes les dalles, et ça dépasse largement de la fenêtre modale, l'affichage de la carte ne reste pas limité aux dimensions spécifiées dans la balise id=map.
    Pourtant, de ce que j'ai vu dans différents forums, c'est le but de l'instruction invalidateSize.

    Qu'est ce qui cloche?

    Merci,
    Nico

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 491
    Par défaut
    Résolu !
    Dans la déclaration de la librairie Leaflet, j'avais déclaré que leaflet.js, et pas le css

    Nico

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modal Bootstrap + Google Map
    Par luangue dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/10/2015, 15h52
  2. Ouverture d'une modal bootstrap
    Par Jarell dans le forum jQuery
    Réponses: 0
    Dernier message: 30/05/2014, 14h51
  3. Comportement différent si modal bootstrap ouverte par onhashchange sur chrome > 34
    Par choubeu dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 29/05/2014, 10h23
  4. Modal bootstrap et autofocus textarea
    Par mower666 dans le forum jQuery
    Réponses: 5
    Dernier message: 17/02/2014, 11h04
  5. Formulaire et formulaire modal bootstrap
    Par MisterCh dans le forum Django
    Réponses: 0
    Dernier message: 25/12/2013, 12h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo