Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: temporizzazione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    298

    temporizzazione

    salve,

    mi servirebbe un temporizzatore che fermi l'esecuzione di una funzione per un tot (e quindi escludiamo settimeout).
    la funzione è la seguente (ma non va):

    <SCRIPT TYPE="text/javascript">
    codice = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f");
    a = 0;
    b=0;
    ide=0;

    function su(ide)
    {
    tempo= setInterval("somma(ide)", 150);
    }

    function somma(ide) {
    b++;
    if(b=16) {
    b=0;
    a++;
    if(a=15) {
    clearInterval(tempo);
    }
    }
    colore="#c0" + codice[a] + codice[b] + "c0";
    alert(colore);
    document.getElementById(ide).style.backgroundColor = colore;
    }
    </script>

    a cosa serve? dovrebbe servire per cambiare la tonalità di un colore in un tag <td>, in modo che sembri che il colore appaia lentamente.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    298
    che cosa è che non va?

    mi dice "necessario oggetto" dopo che mi è apparso l'alert.

    comunque, se qualcuno ha un'idea diversa da come l'ho svolta io, ben venga!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    per l'errore è che tu recuperi

    document.getElementById(0)

    essendo ide = 0,
    ma devi recuperare l'elemento con il suo attributo ID
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    298
    quello può essere un'errore (proverò), ma mi serve anche un temporizzatore che blocchi l'esecuzione della funzione.
    Sopra ho provato con setinterval; può funzionare?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    ma se usato bene sì..tanto non è che hai molta scelta: o lo fai con setInterval o con setTimeout, tutto dipende da come imposti la cosa...

    fai qualche prova e se non riesci posta il codice.
    ciauz
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    298
    il codice è quello del primo mex

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    Originariamente inviato da RobMcSword
    il codice è quello del primo mex
    vabò, tu prima sistema il discorso dell'ide, ad esempio se è costante, non serve neppure passarlo come parametro...percui cambia di molto la funzione...
    poi vediamo
    ciauz
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    298
    corretto (una svista).

    ti mando il codice intero della pagina:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
    <HTML>
    <HEAD>
    <TITLE></TITLE>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO 8859-1">
    <META NAME="generator" CONTENT="NoteTab Light 4.82">

    <SCRIPT TYPE="text/javascript">
    <!--
    codice = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f");
    a = 0;
    b=0;

    function su(ide)
    {
    tempo= setInterval("somma(ide)", 150);
    }

    function somma(ide) {
    b++;
    if(b==16) {
    b=0;
    a++;
    if(a+b>31) {
    clearInterval(tempo);
    }
    }
    colore="#c0" + codice[a] + codice[b] + "c0";
    alert(colore);
    document.getElementById(ide).style.backgroundColor = colore;
    }

    function fColor(id)
    {
    document.getElementById(id).style.backgroundColor ='yellow'
    }

    function gColor(id)
    {
    document.getElementById(id).style.backgroundColor =''
    }
    -->
    </script>

    </HEAD>
    <BODY>

    <TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="650" align="center">
    <TR>
    <TD rowspan="3" id="sol" align="center">[img]imm/soluz.gif[/img]</TD></tr>
    </TABLE>
    </BODY>
    </HTML>

    il funzionamento è spiegato nel primo msg

    grazie comunque

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    298
    errore!

    ho sbagliato riga <td>.
    questa è quella corretta (da sostituire a quella sopra):

    <TD id="sol" align="center">[img]imm/soluz.gif[/img]</TD>

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    guarda ti dico l'errore dove è, ma per la soluzione credo ti convenga cambiare strategia.

    il problema e che imposti setInterval (che è una funzione che persiste anche dopo che la funzione che l'ha chiamata (su) termina,
    passandole un parametro che dopo la chiamata scompare, percui setInterval rimane con un parametro privo di significato.

    per cui ho usi una variabile globael, o utilizzi un setTimeout.

    Io però visto che usi eventi lanciati sull'elemento su cui vuoi creare l'effetto di rollover, potresti addirittura passare il riferimento all'elemento stesso con this...

    vedi un po'.
    ciauz
    Alcuni miei articoli in PRO.HTML.IT: JavaScript | DHTML | DOM
    Sviluppo : wedev | forum

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.