Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Script che riproduce il marquee

    Salve a tutti, ho appena intrapreso il js sia qui su html.it che su w3schools.
    Ho provato a fare qualcosa di molto semplice ma mi dice:
    "Uncaught TypeError: Undefined is not a function".
    P.s. i<20 è totalmente casuale, volevo soltanto provare come funziona.
    Ho provato anche a chiudere con else ma non funziona lo stesso.
    Il codice è il seguente:
    codice:
    <!doctype html><html>
    <head>
    <meta charset="UTF-8">
    <title>Una prova JS</title>
    <style>
    #text
    {
     width:200px;
     position:absolute;
     left:20px;
     transition:all 1s ease;
    }
    </style>
    </head>
    <body>
    
    
    <p id="text">Testo di prova
    </p>
    
    
    <script type="text/javascript">
    var i;
    
    
    for(i=0; i<20; i++)
    {
      if(document.GetElementById("text").style.left == "20px" )
       {
          document.GetElementById("text").style.left = "600px";
       }
      else if(document.GetElementById("text").style.left == "600px" )
       {
          document.GetElementById("text").style.left = "20px";
       }
    }
    </script>
    </body>
    </html>

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    GetElementById -> getElementById (con la minuscola)

    Comunque la prossima volta che posti un errore, di' anche la riga dove si presenta
    No

  3. #3
    è vero! Grazie ora la sintassi è corretta.
    Però non funziona lo stesso!
    Possibile che sia sbagliato qualcosa a livello "logico"?
    Appena aggiorno la pagina trovo subito il testo a 600px di distanza.
    Ho aggiunto anche -webkit- nel css ma non funziona lo stesso.
    Ultima modifica di PrecisionMaster; 24-01-2015 a 20:00

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Di fatto quel codice sposta 20 volte avanti e indietro l'elemento, ma talmente veloce che il browser ti mostra solo l'ultima posizione. Tu cosa vuoi ottenere?
    No

  5. #5
    Quote Originariamente inviata da tampertools Visualizza il messaggio
    Di fatto quel codice sposta 20 volte avanti e indietro l'elemento, ma talmente veloce che il browser ti mostra solo l'ultima posizione. Tu cosa vuoi ottenere?
    Anche io ci ho pensato. Ma non può essere!
    Ho messo nel CSS transition: all 1s ease, quindi dovrei vedere benissimo lo spostamento, no?
    Voglio ottenere un testo che va avanti e indietro(so che è possibile con i keyframe del css3 ma voglio capire anche con js).
    Possibile che non entra nel campo if?
    Ho provato anche a cancellare l'else if e il risultato è lo stesso. Adesso rimane a 20px perchè prima c'era un errore e lo portava a 600. Adesso non parte neanche.

    codice:
    <script type="text/javascript">
    var i;
    
    for(i=0; i<20; i++)
    {
        if(document.getElementById("text").style.left == "20px")
        {
            document.getElementById("text").style.left = "600px";
        }
        else if(document.getElementById("text").style.left == "600px")
        {
            document.getElementById("text").style.left = "20px";
        }
    }
    </script>
    Il codice html/css è uguale, anzi ho aggiunto -webkit-transition:all 1s ease;
    Ultima modifica di PrecisionMaster; 25-01-2015 a 01:21

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    @Precision prendi uno script "marquee" pronto quando non si hanno conoscenze approfondite di javascript (che il progetto richiede) si dicono un sacco di "sciocchezze", e sperare che il forum ti possa insegnare il javascript è arduo (chiaramente è un pensiero personale maturato sul l'esperienza di 13 anni di forum)

    Ultima modifica di cavicchiandrea; 25-01-2015 a 11:18
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    @Precision prendi uno script "marquee" pronto quando non si hanno conoscenze approfondite di javascript (che il progetto richiede) si dicono un sacco di "sciocchezze", e sperare che il forum ti possa insegnare il javascript è arduo (chiaramente è un pensiero personale maturato sul l'esperienza di 13 anni di forum)

    Non pensavo fosse così difficile.
    A questo punto parto da qualcosa di più semplice e riprendo dopo.
    Non capisco però perchè il mio codice non funziona. Non chiedo mica di spiegarmi il js, chiedo solo perchè il mio codice non funziona, solo la motivazione.
    Grazie!
    Ultima modifica di PrecisionMaster; 25-01-2015 a 11:54

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    Perché JS non aspetta che l'animazione CSS sia finita.

    Prova a sostituire il for con
    codice:
    setInterval(function () {
       // tutto il contenuto del for
    }, 1000);
    No

  9. #9
    Ho fatto come hai detto: non funziona.
    codice:
    <!doctype html><html>
    <head>
    <meta charset="UTF-8">
    <title>Una prova JS</title>
    <style>
    #text
    {
     width:200px;
     position:absolute;
     left:20px;
     transition:all 1s ease;
     -webkit-transition:all 1s ease;
    }
    </style>
    </head>
    <body>
    
    
    <p id="text" onClick="myfunction()" >Testo di prova
    </p>
    
    
    <script type="text/javascript">
    function myfunction()
    {
      setInterval(function() {
    	
       if(document.getElementById("text").style.left == "20px")
    	{
    		document.getElementById("text").style.left = "600px";
    	}
    	else if(document.getElementById("text").style.left == "600px")
    	{
    		document.getElementById("text").style.left = "20px";
    	}
      }, 1000);	
    }
    
    
    </script>
    </body>
    </html>

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    esempio di come poi rilevare gli attributi css http://webandylab.altervista.org/styleleftcss.html style.left non viene rilevato da js perché è impostato da css
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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.