Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    scrolling div: funziona solo su :(

    mi potete spiegare perchè al click sul link "su" il div scrolla in alto tranquillamente mentre al link "giu" scrolla (pare) in maniera... esponenziale? provatelo:

    <html>
    <head>
    <script language="javascript">

    function su() {

    var questosu = document.getElementById('vai').style.top;
    distsu = new Array();
    distsu = questosu.split("px");
    distsu[0] = distsu[0] - 1;

    document.getElementById('vai').style.top = distsu [0];

    }

    function giu() {

    var questogiu = document.getElementById('vai').style.top;
    distgiu = new Array();
    distgiu = questogiu.split("px");
    distgiu[0] = distgiu[0] + 1;

    document.getElementById('vai').style.top = distgiu[0];


    }



    </script>
    </head>
    <body>
    <div id="primo">

    <div id="vai" style="position: absolute; top: 0px;">

    testotestotesto

    testotestotesto

    testotestotesto

    testotestotesto

    testotestotesto

    testotestotesto

    testotestotesto

    testotestotesto

    testotestotesto

    testotestotesto


    </div>
    </div>


















    su

    giu
    </body>
    </html>


  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    il problema è il casting implicito che javascript fa, kinfatti quando fai:

    "10" - 1

    Javascript capisce che deve trattare "10" come numero e il risultato finale è: 9

    quando invece incontra:

    "10" + 1

    (per l'overloading degli operatore +) Javascript converte in stringa l'1 e concatena le stringhe, il risultato è quindi "101"

    La soluzione è assicurarsi sempre di lavorare con numeri, ad esempio facendo:

    parseInt("10") - 1

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

  3. #3
    Originariamente inviato da standard
    il problema è il casting implicito che javascript fa, kinfatti quando fai:

    "10" - 1

    Javascript capisce che deve trattare "10" come numero e il risultato finale è: 9

    quando invece incontra:

    "10" + 1

    (per l'overloading degli operatore +) Javascript converte in stringa l'1 e concatena le stringhe, il risultato è quindi "101"

    La soluzione è assicurarsi sempre di lavorare con numeri, ad esempio facendo:

    parseInt("10") - 1

    ciauz
    quando capito a jesi ti pago una pizza

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2002
    Messaggi
    633
    Originariamente inviato da yuri refolo
    quando capito a jesi ti pago una pizza
    eheh...se ti serve qualcos'altro sono qua (così aggiungiamo anche la birra )
    ciao corregionale!
    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.