Animare l'opacità non funziona in IE o Opera
-
18-09-2019 - |
Domanda
sto sperimentando con i plugin jQuery. Ho questo codice a svanire in una "lightbox":
$('#cleverbox')
.css({ opacity:0, visibility:'visible' })
.animate( {opacity:1}, 2000 );
Funziona bene su Firefox e Chrome, ma in IE (7 e 8) e l'Opera l'elemento appena appare piuttosto che essere sbiadita in. Ci sono un sacco di domande simili su così, ma devo ancora trovare una soluzione che funziona .
Ho un esempio pagina . Sto anche avendo un paio di altri problemi:
- In Internet Explorer (7 e 8), la prima miniatura non visualizza l'ID (l'evento
onload
mai incendi). - In IE7, il codice per risolvere il bug ClearType non funziona.
$(this).css( 'opacity', '' )
dovrebbe rimuovere lo stile di opacità (in questo caso, il 'filtro' proprietà), ma non rimuoverlo. In strumenti di sviluppo di IE ancora hastyle="filter: ;"
- In Opera, non è mai eseguito dopo che ha caricato una volta. In altre parole, se l'immagine è nella cache del browser l'evento
onload
non si attiva mai.
Soluzione 2
Ho trovato un fix per il bug in Opera, grazie alla comunità Opera. Ho avuto questa:
var imgLoad = new Image();
imgLoad.src = linkUrl;
imgLoad.onload = function() {
//do some stuff here
}
Tuttavia, se l'immagine è nella cache del browser non è mai spara perché la parte di carico viene prima la funzione onload. La soluzione è di spostare l'assegnazione src
sotto la funzione onload:
var imgLoad = new Image();
imgLoad.onload = function() {
//do some stuff here
}
imgLoad.src = linkUrl;
Altri suggerimenti
Hai provato avvolgendo valori di opacità in '
, vale a dire $(something).animate({opacity:'1'});
? Opere per me ogni volta.