Buongiorno a tutti,
ho un grosso problema con del codice js che funziona perfettamente su chrome/firefox/safari/opera ma che incasina incredibilmente ie.
Si tratta di una funzione che dati due div sovrapposti, li sfuma l'uno con l'altro ogni 5 secondi.
E' semplicemente un modo carino di cambiare l'header di un sito internet.
Il codice è formato da 2 funzioni:
codice:
function rolling_header(wich,image){
$('#head'+wich).html('[img]'+mypath+'headers/header_0'+image+'.jpg[/img]');
}
function do_the_rolling(wich,image){
if (wich==1) other=2;
else other=1;
$('#head'+wich).fadeIn('slow');
$('#head'+other).fadeOut('slow',function(){
image++;
if (image>3) image=1;
setTimeout(function(){ rolling_header(other,image)},5000);
});
}
Ho 3 immgini e 2 div (head1,head2).
All'inizio head1 è visibile, e contiente l'immagine 1, mentre head2 è invisibile.
Chiamo rolling_header passando come parametri (2,2) ovvero gli dico di visualizzarmi su head2 l'immagine 2.
Associato all'evento onload dell'immagine viene chiamata la funzione do_the_rolling alla quale passo i parametri che mi dicono quale deve essere il div da visualizzare e quale quello da nascondere, nonchè quale sarà la prossima immagine da caricare
Non appena termina il fadeout del div da nascondere lancio di nuovo la rolling_header tramite una settimeout.
Il problema si verifica solo con ie: praticamente è come se non rispettasse il periodo di 5 secondi ma lanciasse l'evento a casaccio e francamente non riesco a capire il perchè...sembra quasi che l'evento onload dell'immagine venga chiamato più volte di seguito...
Qualcuno ha qualche idea?