7
votes

Google Map + jQuery: Bug de rendu

Lorsque vous passez une carte Google dans un onglet JQuery-UI, la carte ne parvient pas à afficher correctement dans certaines circonstances. Reproduire:

  1. Go ici
  2. Cliquez sur le lien "Liste"
  3. redimensionner la fenêtre du navigateur
  4. Cliquez sur la "carte" link

    Observez que certains des superpositions de nom de placement se dessinent correctement, mais d'autres ne le font pas. J'ai effectivement dépouillé toutes les choses JQuery-UI pour limiter la portée du problème, et il semble être juste de l'application de l'affichage: masquer / affichage: bloc qui provoque le problème.

    mise à jour

    Le bogue survient également, de temps en temps, juste lorsque vous basculez entre l'affichage: Aucun / Bloc - E.G. aucun redimensionnement ne se produit. Cela semble être le plus courant dans IE (8).


2 commentaires

Est-ce pour Google Maps API V2 ou V3? Je travaille avec V3 et j'ai eu des problèmes similaires, mais je n'ai pas encore été en mesure de les résoudre à 100%.


J'ai résolu ce problème jetons un coup d'œil sur Stackoverflow.com/a/13380866/1823525


4 Réponses :


0
votes

Essayez ceci: xxx pré>

après p> xxx pré>

car vous devez indiquer la carte que la page est redimensionnée, c'est peut-être le problème Vous n'avez pas une jQuery une p>

edit forte> p>

OK Retirez le P>

 $("#map").show(1, function () {
          resizeMap();
        });


6 commentaires

Cela semble bien en théorie, mais ne fonctionne pas pour moi dans la pratique :( (exemple mis à jour)


Votre exemple mis à jour ne pas avoir le problème pour moi, j'utilise Firefox 3.5 qu'est-ce que vous utilisez?


Firefox 3.5.1 Je vais essayer dans quelques autres navigateurs - me demander si j'ai des problèmes de mise en cache. Je posterai quelques captures d'écran si le problème persiste, juste pour confirmer ce qu'il est. Acclamations.


J'ai mis à jour à 3.5.1 et je ne vois pas le problème aussi, veuillez poster les captures d'écran


En fait, je reçois une erreur avec cette ligne dans IE8: fenêtre.attatachevent ("Onresize", fonction () {carte.onResize ()}); (Devrait-il vraiment être «onresize»?)


Cela n'a pas fonctionné non plus (où la fonction Resizemap est-elle réellement définie ??) mais les autres informations. Sur cette page aidé - merci!



3
votes

Essayez appeler Map.Resize () Après avoir affiché la carte à chaque fois.

Cela peut ne pas fonctionner bien s'il est appelé lorsque la carte est cachée à l'aide d'affichage: Aucun puisque il aurait une hauteur et une largeur de zéro.


1 commentaires

Yup, l'affichage: aucun n'est définitivement le problème.



3
votes

du Documents en ligne :

Utilisez la technique hors gauche pour cacher Panneaux d'onglets inactifs. Par exemple. dans votre feuille de style remplacer la règle pour le Sélecteur de classe ".ui-onglets .ui-tabs-cache-cache" avec p>

.ui-tabs .ui-tabs-hide {
    position: absolute;
    left: -10000px;
}


0 commentaires

3
votes

Utilisation de JQuery Google Maps Plugin a eu le même problème avec JQuery UI onglets.

La carte est créée comme ceci: p> xxx pré>

Il a été résolu très facilement (mais pas rapidement) en appelant p>

resizeTo(screen.width, screen.height);


0 commentaires