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

    cosa sbaglio?! help me...

    Salve a tutti!
    provate a copiare questo codice in una pagina html:



    <html>
    <head>
    <title>div movie</title>
    <script>
    delta=150;
    myleft1=start1=230;
    function test1(){
    if (myleft1>start1||myleft1==start1) {movediv1_off();}
    else {movediv1_on();}
    }
    function movediv1_on(){
    //document.getElementById('mylink1').style.left=-150
    if (myleft1<start1||myleft1==start1) {
    setTimeout('movediv1_on()',1);
    document.getElementById('NW').style.left=myleft1;
    myleft1+=1.5;}
    }
    function movediv1_off(){
    if (myleft1>(start1-delta)) {
    setTimeout('movediv1_off()',1);
    document.getElementById('NW').style.left=myleft1;
    myleft1-=1.5;}
    else {
    //document.getElementById 'mylink1').style.left=270;
    }
    }
    </script>
    <style>
    #NW {
    position: absolute;
    height: 156;
    width: 212;
    top: 150;
    left: 230;
    background-image : url('_MYBASE_NW.GIF')
    }
    </style>
    </head>

    <body>
    <div id="NW" onclick="javascript: test1();">Clicca qui</div>
    </body>
    </html>



    Visualizzando la pagina, provate a cliccare sulla scritta. Quando ci clicco il div si muove fino alla posizione stabilita dalla function. Se ci riclicco quando si è fermato, ritorna nella posizione iniziale, e fin qui ok. Quando però clicco una volta e mentre il div si muove ci riclicco sopra, s'impalla tutto, o meglio "trema" il div e di conseguenza si impalla. Io invece vorrei che inverta il moto e ritorni alla posizione iniziale. Dov'è lerrore? Ho notato che la cosa succede solo se il div si muove verso sinistra...
    Vi prego... aiutatemi!

    grazie in anticipo...

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    <html> 
    <head> 
    <title>div movie</title> 
    <script> 
    delta=150; 
    myleft1=start1=230; 
    var tm;
    function test1(){ 
    clearTimeout(tm);
    if (myleft1>start1||myleft1==start1) {movediv1_off();} 
    else {movediv1_on();} 
    } 
    function movediv1_on(){ 
    //document.getElementById('mylink1').style.left=-150 
    if (myleft1<start1||myleft1==start1) { 
    	tm=setTimeout('movediv1_on()',1); 
    	document.getElementById('NW').style.left=myleft1; 
    	myleft1+=1.5;} 
    } 
    function movediv1_off(){ 
    if (myleft1>(start1-delta)) { 
    	tm=setTimeout('movediv1_off()',1); 
    	document.getElementById('NW').style.left=myleft1; 
    	myleft1-=1.5;} 
    else { 
    	//document.getElementById 'mylink1').style.left=270; 
    } 
    } 
    </script> 
    <style> 
    #NW { 
    position: absolute; 
    height: 156; 
    width: 212; 
    top: 150; 
    left: 230; 
    background-image : url('_MYBASE_NW.GIF') 
    } 
    </style> 
    </head> 
    
    <body> 
    <div id="NW" onclick="javascript: test1();">Clicca qui</div> 
    </body> 
    </html>
    devi complicare un pochino la logica ed i controlli se vuoi l'inversione del moto anche quando va verso destra

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    scusa... ma non ho capito le tue correzioni...

  4. #4
    scusa... non avevo visto la riga con "clearTimeout(tm)"
    ecco perchè non capivo :master:
    grazie 1000 era esattamente quello che volevo! grande!

    A presto!

    :metallica

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.