Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [jQuery] fadeTo problem z IE
Forum PHP.pl > Forum > XML, AJAX
Spyder
Witam

Próbuje dodac do mojego fadeTo dodatek typu

Wszystkie inne przegladarki

  1. $(this).fadeTo("slow", 1.0);


Tylko internet explorer

  1. <!--[if IE]>$(this).fadeTo("slow", 1.0, function() { this.style.removeAttribute('filter'); });<![endif]-->


lub bylo tak

  1. $(this).fadeTo("slow", 1.0 <!--[if IE]>, function() { this.style.removeAttribute('filter'); }<![endif]-->
  2. );


this.style.removeAttribute('filter'); jest wymagany do nadania czcionce gladkich krawedzi bo zrobieniu animacji problem jest taki ze to wywala skolei Firefoxa wiec musze tylko dodac ten kawalek jak jest IE tyle ze jak te dwa demka co dalem nie dzialaja. Moze ktos wie jak wykryc w tym przypadku ie i dodac ta linijke. THX
erix
Efekt pojawiania w IE zależy właśnie od filtra; jeśli go usuniesz, nici z półprzezroczystości...
Spyder
Jestes w bledzie to jes wlasnie technika pozbycia sie brzydkich czcionek. Poczytaj tu:

http://blog.bmn.name/2008/03/jquery-fadein...eartype-glitch/

Moje pytanko jest tylko jak zrobic zeby ta linijka byla rozpoznawana tylko przez IE
erix
Źródła jQ:
[JAVASCRIPT] pobierz, plaintext
  1. // IE uses filters for opacity
  2. if ( !jQuery.support.opacity && name == "opacity" ) {
  3. if ( set ) {
  4. // IE has trouble with opacity if it does not have layout
  5. // Force it by setting the zoom level
  6. elem.zoom = 1;
  7.  
  8. // Set the alpha filter to set the opacity
  9. elem.filter = (elem.filter || "").replace( /alpha\([^)]*\)/, "" ) +
  10. (parseInt( value ) + '' == "NaN" ? "" : "alpha(opacity=" + value * 100 + ")");
  11. }
  12.  
  13. return elem.filter && elem.filter.indexOf("opacity=") >= 0 ?
  14. (parseFloat( elem.filter.match(/opacity=([^)]*)/)[1] ) / 100) + '':
  15. "";
  16. }
[JAVASCRIPT] pobierz, plaintext

Trochę mi się to w głowie nie mieści, ale cóż...

Zresztą, w komentarzach parę osób zgłaszało problemy... A jeśli chodzi o problem z działaniem - masz komentarz warunkowy, a gdzie zdarzenie?
Spyder
Niestety to nie dziala...
erix
Pokaż, co zrobiłeś.
baa
Komentarze warunkowe nie będą działać, bo to komentarze HTMLa, nie JS.

Ja zawsze robię tak:

Dodaję swoją metodę, usuwającą problem z ClearType:
[JAVASCRIPT] pobierz, plaintext
  1. jQuery.fn.extend({
  2. // fix msie7 ClearType
  3. ieFilter: function() {
  4. return this.each(function(){
  5. if(this.style.filter && this.style.removeAttribute){
  6. this.style.removeAttribute('filter');
  7. }
  8. });
  9. }
  10. })
[JAVASCRIPT] pobierz, plaintext


I tej metody używa się dopiero PO animacji przezroczystości, czyli w tzw. callback function, dodawanej jako trzeci argument:

[JAVASCRIPT] pobierz, plaintext
  1. $(this).fadeTo('slow', 1, function() {
  2. if($.browser.msie && $.browser.version == '7.0') {
  3. $(this).ieFilter()
  4. }
  5. })
[JAVASCRIPT] pobierz, plaintext


W zasadzie to sprawdzanie przeglądarki możesz przenieść do definicji metody. Powinno pomóc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.