Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420

    Funzione start (niubbissimo)

    Ciao a tutti e scusate la banalità ma non mi intendo di js e tuttavia mi trovo a dover modificare la funzione start() che nel mio sito ha questa forma:

    codice:
    <script type='text/javascript'>
    start('box');
    </script>
    dove 'box' è l'id di un div contenitore di frasi che ruotano. Dovendo aggiungere un secondo contenitore di frasi, ho provato sia:

    codice:
    <script type='text/javascript'>
    start('box1','box2');</script>
    Col risultato che funziona solo il box inserito in posizione 1 (a prescindere che sia il box1 o il box2),
    e sia con:

    codice:
    <script type='text/javascript'>
    start('box1');
    start('box2');
    </script>
    Col risultato che nn funziona nessuna delle 2!
    Qual è il modo corretto di startare 2 funzioni contemporaneamente?
    Grazie a tutti
    - "Si sono vegetariano. Diciamo che non mangio nulla che abbia un cuore"
    - "E i carciofi?"

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Magari postare la funzione start?
    No

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420
    Quote Originariamente inviata da tampertools Visualizza il messaggio
    Magari postare la funzione start?
    Ciao, hai ragione... il codice è questo:

    codice:
    // 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);
    }

    Guardandola meglio mi accorgo che non posso passarle direttamente 2 parametri, quindi immagino che per risolvere senza modificarla, occorrerà chiamarla 2 volte... ma a quanto pare le 2 chiamate in sequenza creano un qualche tipo di conflitto
    - "Si sono vegetariano. Diciamo che non mangio nulla che abbia un cuore"
    - "E i carciofi?"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.