/ / Solo per l'opzione jquery di safari - jquery, css, safari, opacità

solo per jquery safari opacity - jquery, css, safari, opacità

#div1{
filter:alpha(opacity=85);
-moz-opacity:0.85;
-khtml-opacity:0.85;
opacity: 0.85;
}

#div1:hover{
filter:alpha(opacity=100);
-moz-opacity:1;
-khtml-opacity:1;
opacity: 1;
}

html>#div1.safarihack{
opacity: 1;
}

Tutto quanto sopra fa come previsto. Safari ha sempre impostato l'opacità su pieno perché non lo rende correttamente se non lo è. Tuttavia, ho anche un evento jquery che quando si fa clic su questo div, l'opacità sfuma a 0 e ne ho bisogno per sfumare a 0 per tutti i browser (il fadeout non è un'opzione).

L'html del div è quindi cambiato, e ho bisogno dell'opacità di tutti i browser per tornare a 0.85 o 85, ad eccezione di Safari, che deve tornare a 100.

Come posso bersagliare questo nel jquery? C'è un modo che posso mettere

html>#div1.safarihack {opacity: 1; }

in questo?

$(this).html(nextHtml).animate({"opacity":"0.85",
"filter":"alpha(opacity=85)",
"-moz-opacity":"0.85",
"-khtml-opacity":"0.85",
}, 500);

*Si noti che (this) = # div1**

risposte:

0 per risposta № 1

Vedere trovare se l'attuale browser funzionante è safari tramite css o javascript : potrebbe aiutarti, buona fortuna


0 per risposta № 2

Penso che troverai questo thread interessante: Distingui Chrome da Safari usando jQuery.browser


0 per risposta № 3

Provare

$(this).html(nextHtml).animate({opacity:($.browser.safari)?1:.85});

Nota che $.browser.safari è deprecato.

Inoltre, non c'è bisogno di usare tutti quegli attributi di opacità in jQuery, jQuery tradurrà "opacità" nell'attributo che il browser corrente sta supportando.


0 per risposta № 4

fa questa demo aiuto con il tuo problema? Ho abbassato l'opacità per rendere l'hover più evidente per la demo.

Modificare: Demo aggiornata in cui cambia l'opacità del testo. Sembra funzionare bene in Safari5

Non capisco il problema con l'opacità di Safari perché non vedo alcun problema nell'esecuzione della demo in Safari5, Chrome12 o Firefox4.