Maison > Article > interface Web > Pourquoi ma carte de dépliant ne parvient-elle pas à se charger dans une structure d'onglets à bascule de données ?
Onglet de basculement de données interférant avec l'initialisation des cartes de dépliants
Les cartes de dépliants sont connues pour leur capacité à afficher des cartes interactives sur des pages Web. Cependant, un problème peut survenir lors de l'utilisation de cartes Leaflet dans une structure d'onglets à bascule de données, entraînant un chargement incorrect de la carte.
Comprendre le problème
Le problème découle de la façon dont Leaflet initialise ses cartes. Il calcule la taille du conteneur lors de la création de la carte. Si le conteneur est masqué lors de l'initialisation (par exemple, dans un onglet masqué dans le cas d'onglets à bascule de données), Leaflet peut ne pas déterminer avec précision sa taille. Cela peut entraîner des téléchargements de tuiles incorrects et un rendu de carte incomplet.
Solution : mise à jour manuelle de la taille du conteneur
Pour résoudre ce problème, vous pouvez déclencher manuellement une mise à jour de la taille du conteneur en utilisant la méthode map.invalidateSize(). Cela oblige Leaflet à recalculer la taille du conteneur, lui permettant de télécharger correctement les tuiles et d'afficher la carte comme prévu.
Voici comment implémenter cette solution à l'aide de jQuery :
$(document).on('shown.bs.tab', '#carte', function () { map.invalidateSize(); });
Dans ce code, l'écouteur d'événements montré.bs.tab est utilisé pour détecter quand l'onglet 'carte' est affiché. Lorsque cela se produit, cela déclenche la fonction map.invalidateSize(), garantissant que la taille du conteneur est mise à jour et que la carte s'affiche correctement.
Notes supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!