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:

  1. In Internet Explorer (7 e 8), la prima miniatura non visualizza l'ID (l'evento onload mai incendi).
  2. 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 ha style="filter: ;"
  3. 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.
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top