Ciao a tutti! Non conosco js ma mi trovo a dover modificare una parte di codice in cui viene richiamata una funzione che semplicemente mi fa scorrere delle frasi in un contenitore, inserendo una nuova chiamata alla stessa funzione per un secondo contenitore...
La chiamata originaria e la funzione sono le seguenti:
Quello che vorrei fare è applicare lo stesso effetto anche ad un altro contenitore di frasi (box2) e ho provato in vari modi ma senza nessun risultato:
Messe in questo modo, la prima non funziona (ossia le frasi non scorrono più) e la seconda funziona in maniera errata (compaiono più frasi contemporaneamente).
A me la funzione sembra slegata dal nome del contenitore, quindi chiamandola 2 volte e passandole argomenti differenti mi aspettavo un funzionamento corretto, ma così non è stato... Inoltre per tagliare la testa al toro ho riscritto una funzione identica chiamandola "start2" ed invocandola nel passaggio di 'box2' ma anche in questo caso il funzionamento è errato ed identico al precedente tentativo... quindi mi viene in mente che il problema sia proprio nella funzione che, richiamata 2 volte, genera un qualche tipo di conflitto... ma ahimè nn so che pesci pigliare!
Grazie a tutti se mi darete una mano!
La chiamata originaria e la funzione sono le seguenti:
Codice:
<script type='text/javascript'>
start('box');
</script>
// VELOCITA' TRANSIZIONE NEWS (ESPRESSA IN SECONDI)
var speed = 5;
// VARIABILI GLOBALI (NOTIZIE SARA' L'ARRAY CHE CONTERRA' LE NEWS)
var index = 0;
var limite = 0;
var notizie = null;
var rotazione = null;
// FUNZIONE DA CHIAMARE ALLO START DEL BOX NEWS
function start(id_div){
var box = document.getElementById(id_div);
$(box).mouseenter(function(){stop();});
$(box).mouseleave(function(){play();});
$('#chiudi').click(function(){ $(box).fadeOut();});
notizie = box.getElementsByTagName('p');
limite = notizie.length;
inizializzazione(notizie);
newsIn();
}
// FUNZIONE NECESSARIA ALL'INIZIALIZZAZIONE
function inizializzazione(elementi){
for(i=0; i<elementi.length; i++){
elementi[i].style.display='none';
}
}
// FUNZIONE PER NEWS IN INGRESSO
function newsIn(){
rotazione = setTimeout('newsOut()', (speed*1000));
$(notizie[index]).fadeIn(1000);
}
// FUNZIONE PER NEWS IN USCITA
function newsOut(){
$(notizie[index]).fadeOut(1000, function(){
index++;
if(index==limite){
index = 0;
}
newsIn();
});
}
// FUNZIONE PER LO STOP DELL'ANIMAZIONE (ATTIVA AL PASSAGGIO DEL MOUSE)
function stop(){
clearTimeout(rotazione);
}
// FUNZIONE PER LA RIPARTENZA DELL'ANIMAZIONE (ATTIVA AL PASSAGGIO DEL MOUSE)
function play(){
clearTimeout(rotazione);
rotazione = setTimeout('newsOut()', 1000);
}
Quello che vorrei fare è applicare lo stesso effetto anche ad un altro contenitore di frasi (box2) e ho provato in vari modi ma senza nessun risultato:
Codice:
<script type='text/javascript'>
start('box');
</script>
<script type='text/javascript'>
start('box2');
</script>
Messe in questo modo, la prima non funziona (ossia le frasi non scorrono più) e la seconda funziona in maniera errata (compaiono più frasi contemporaneamente).
A me la funzione sembra slegata dal nome del contenitore, quindi chiamandola 2 volte e passandole argomenti differenti mi aspettavo un funzionamento corretto, ma così non è stato... Inoltre per tagliare la testa al toro ho riscritto una funzione identica chiamandola "start2" ed invocandola nel passaggio di 'box2' ma anche in questo caso il funzionamento è errato ed identico al precedente tentativo... quindi mi viene in mente che il problema sia proprio nella funzione che, richiamata 2 volte, genera un qualche tipo di conflitto... ma ahimè nn so che pesci pigliare!
Grazie a tutti se mi darete una mano!