2009-07-29 8 views
0

Je rencontre un problème avec sifr placé à côté d'un img flottant, Opera 9.6 force le texte à effacer l'image et à afficher sur une ligne. Firefox force également le texte à effacer la première fois que la page est chargée, bien qu'un correctif d'actualisation corresponde à cela et que le problème ne se reproduise plus, pour revenir si le cache est effacé et le navigateur redémarré.sIFR 3 r436 Opera + Problème flottant Firefox

Egalement strangley avec firefox, si le bogue survient et que je charge le firebug, ceci tire le texte à la bonne position en ligne avec l'image, très étrange car je ne pense pas que firebug ait rechargé le dom.

Répondre

1

Il s'agit généralement d'un problème de synchronisation. Lorsque sIFR remplace les éléments, l'image n'est pas encore chargée, de sorte que l'élément à remplacer est la largeur totale du conteneur. sIFR insérera un film Flash de cette largeur, qui ne rentrera pas à côté de l'image une fois que tout sera correctement rendu. Lorsque vous ouvrez Firebug, vous redimensionnez la fenêtre d'affichage de la page Web. Ceci déclenche un redimensionnement dans sIFR et fait que sIFR détecte la largeur correcte de l'élément remplacé.

Solutions:

  • essayez de définir une width et height sur l'image de sorte que la mise en page ne change pas quand il charge
  • Utilisez fitExactly pour rendre le film Flash aussi large que le texte qu'il contient. Cela aidera à prévenir la compensation, à moins bien sûr le texte est plus long que l'espace disponible
  • Set sIFR.useDomLoaded = false; avant sIFR.activate() pour faire sIFR remplacer les éléments à la page charge - après que l'image a été chargée

Vous pourriez aussi avoir besoin pour ajuster l'espacement des lettres sur les éléments à remplacer de sorte que la largeur du texte HTML reflète correctement la largeur qui sera occupée par le texte Flash. Et dans le cas où Flash signale des valeurs incorrectes pour la largeur du texte, utilisez les propriétés tuneWidth et offsetLeft pour les ajuster.

+0

sIFR.useDomLoaded = false; a bien fonctionné, merci marquez vous êtes génial –