2009-07-29 7 views
0

Ich habe ein Problem mit Sifr neben einem floated img, Opera 9.6 zwingt den Text, das Bild zu löschen und in einer Zeile anzuzeigen. Firefox erzwingt auch, dass der Text gelöscht wird, wenn die Seite das erste Mal geladen wird, obwohl ein Aktualisierungsfix dies ist und das Problem nie wieder auftritt, nur um zurückzukehren, wenn der Cache gelöscht und der Browser neu gestartet wird.sIFR 3 r436 Opera + Firefox float Problem

Auch strangley mit Firefox, wenn der Fehler auftritt und dann ich Firebug laden, schießt dies den Text bis zur richtigen Position inline mit dem Bild, sehr seltsam, da ich nicht dachte, Firebug verursachte das Dom neu zu laden.

Antwort

1

Dies ist normalerweise ein Zeitproblem. Wenn sIFR die Elemente ersetzt, ist das Bild noch nicht geladen, sodass das zu ersetzende Element die gesamte Breite des Containers aufweist. sIFR fügt einen Flash-Film dieser Breite ein, der nicht mehr neben das Bild passt, wenn alles richtig gerendert wurde. Wenn Sie Firebug öffnen, ändern Sie die Größe des Ansichtsfensters der Webseite. Dies löst eine Größenänderung in sIFR aus und bewirkt, dass sIFR die richtige Breite des ersetzten Elements erkennt.

Lösungen: ein width und height auf dem Bild

  • Versuchen Sie, so das Layout ändert sich nicht, wenn es lädt
  • Verwenden fitExactly den Flash-Film so breit wie der Text zu machen, die es enthält. Dies wird helfen, die Lichtung zu verhindern, es sei denn natürlich der Text länger als der verfügbare Platz ist
  • Set sIFR.useDomLoaded = false; vor sIFR.activate() zu sIFR Elemente beim Laden der Seite ersetzen machen - nachdem das Bild auch geladen ist

Möglicherweise müssen um den Buchstabenabstand auf den zu ersetzenden Elementen so anzupassen, dass die Breite des HTML-Texts die Breite, die vom Flash-Text eingenommen wird, korrekt widerspiegelt. Und falls Flash falsche Werte für die Textbreite meldet, verwenden Sie die Eigenschaften und offsetLeft zur Anpassung.

+0

sIFR.useDomLoaded = false; hat super funktioniert, danke, dass du großartig bist –