Font Anti-Aliasing Probleme mit jQuery.fadeIn in IE8?

8

Ich hämmere meinen Kopf gegen die Wand mit einem Problem, das ich in IE8 habe. Ich benutze die Funktion fadeIn von jQuery, um den Inhalt der Seite einzublenden. Dies funktioniert in allen anderen Browsern einwandfrei, aber wenn das fadeIn in IE8 beendet wird, scheint sich das Antialiasing der Schriftart zu ändern, was den Text leicht verschiebt.

Sie können die Website unter Ссылка sehen. Der Code, den ich verwende, um das Einblenden zu bewirken, ist ziemlich einfach, wie unten gezeigt.

%Vor%

Der Code wird von einer setInterval-Funktion aufgerufen, wenn dies einen Unterschied macht.

    
Ioannis Karadimas 03.07.2009, 14:29
quelle

10 Antworten

17

Wie bereits erläutert, wird dies von Cleartype im Internet Explorer verursacht. Es gibt jedoch eine Problemumgehung, die dieses Problem zumindest tolerierbar macht.

%Vor%

Das sollte IE zwingen, die Transparenz zu löschen und den Text damit normal darzustellen.

Es ist immer noch nicht schön, leider.

    
Soleil 13.01.2010 18:43
quelle
7

Dies wird dadurch verursacht, dass ClearType im Internet Explorer verschwindet, was ziemlich ärgerlich ist.

Ссылка

    
Deniz Dogan 03.07.2009 14:31
quelle
1

Ich weiß, dass meine Antwort ein bisschen zu spät kommt, aber wie wäre es, wenn ich umgekehrt denke? IE7 / IE8 behält kein Anti-Aliasing für Faded Text. Wenn Sie also einen einfarbigen Hintergrund (z. B. Schwarz) haben, können Sie ein leeres div, Hintergrundfarbe: # 000; Position: absolut; Bildschirmsperre; und lege es über das Textelement.

Wenn Ihre Anfrage einen Text-FadeIn-Effekt haben soll, müssen Sie den FadeOut nur auf die "schwarze" Ebene anwenden und umgekehrt.

Auf diese Weise wird der Text-Anti-Alias ​​beibehalten.

    
Cybermac 13.11.2009 00:29
quelle
1

Entschuldigung für die sehr späte Antwort, aber ich hatte das gleiche Problem und suchte nach einer Lösung, als ich auf dieses Thema stieß. Ich habe in diesem Thema keine funktionierende Lösung gefunden, aber ich habe eine einfache Lösung gefunden, die das Problem perfekt zu lösen scheint.

Anstatt zu verwenden:

$ ('. element'). fadeIn (500)

Verwenden Sie fadeTo und blenden Sie auf 99%:

$ ('. element'). fadeTo (500, 0.99)

Sie werden keinen Unterschied in der 1% sehen und da es nicht 100% Deckkraft erreicht, scheint IE keinen cleartype anzuwenden.

Lassen Sie mich wissen, ob dies für jemand anderen funktioniert.

    
Gregory Bolkenstijn 13.06.2010 21:22
quelle
0

muss nach Abschluss des Fade-Effekts aufgerufen werden (z. B. 500 ms nach usw.)

    
user160287 20.08.2009 19:08
quelle
0

Ich habe das behoben, indem ich die CSS für den erforderlichen Text hinzugefügt habe

Filter: Alpha (Opazität = 99);

dies wird nur bewirken, dh. Ich bekomme immer noch eine kleine Verschiebung in ie7, aber es ist ausnahmslos.

Sie können sehen, dass es hier funktioniert Ссылка

    
THRIVE 21.07.2010 05:55
quelle
0

Eine fertige Lösung für dieses Problem gefunden.

Ссылка

    
Lars 13.08.2010 13:39
quelle
0

Ich habe eine Lösung: Erstellen Sie ein weiteres DIV auf Ihrem DOM als Overlay und führen Sie Ihre Fade-Funktionen nur auf diesem DIV aus. Es wird so aussehen, als würde der Inhalt ein- und ausgeblendet. Dieser Ansatz ist auch leistungsfähiger, da Sie nur ein einzelnes DIV anstelle von mehreren Elementen ausblenden. Hier ist ein Beispiel:

%Vor%     
Joshua 02.03.2011 15:43
quelle
0

Ich hatte auch Probleme mit transparenten PNGs in verblassten Bereichen, aber mit dem obigen JS zum Entfernen des Filterattributs mit einem winzigen bisschen CSS wurde die Bildschwarz-Grenze beim Ausblenden entfernt.

In meinem Fall war es ein Element, das ein css-Sprite verwendet, also musste ich das nur zu meiner Sprite-Klasse in der CSS hinzufügen:

%Vor%     
Koen. 22.06.2011 12:51
quelle
0

Ich verwende JQuery nicht, aber ich habe dieses Problem mit dem folgenden CSS halbiert:

%Vor%

Der vollständig undurchsichtige Text ist nun mit Anti-Aliasing versehen, aber das Transluzente ist nicht. Es ist jedoch kein großes Problem für den transluzenten Text.

    
Charlie 30.01.2012 18:01
quelle