Visualizzazione dei risultati da 1 a 10 su 10

Discussione: problema ciclo for

  1. #1

    problema ciclo for

    ciao a tutti
    non riesco a capire l'errore

    praticamente di questo codice mi esegue il primo ciclo for ma non il secondo

    codice:
     function allontana(livello){
    //imposto opacità
      document.getElementById(livello).style.opacity=1;
    //recupero il livello attuale
      n_liv=parseInt(livello.substring(5));
      sx=parseInt(document.getElementById(livello).style.left);
      sx_1=parseInt(document.getElementById("Layer"+(n_liv+1)).style.left);
    
      if((sx_1-sx)==100){
    //se è vicino allontano i livlli successivi
       	for (i=n_liv+1; i<6; i++) { 
    	   sx=parseInt(document.getElementById("Layer"+i).style.left);
           document.getElementById("Layer"+i).style.left=sx+250+"px";
    	   document.getElementById("Layer"+i).style.opacity=0.8;
        }
    
        zindex=0;
    //porto il livello in primo piano
        for (i=2; i<6; i++) { 
    	zindex_1=parseInt(document.getElementById("Layer"+i).style.zIndex);
    	   if (zindex<zindex_1){
    	    zindex=parseInt(document.getElementById("Layer"+i).style.zIndex);
    	   }
        }
      }
    	document.getElementById(livello).style.zIndex=zindex+1;
     }
    non capisco perchè non entra nel secondo for

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    se hai un link della pagina postalo

  3. #3
    http://www.grupporiva.it/prova.html

    grazie

    per capire se funziona ho fatto
    codice:
    //ALLONTANAMENTO
     function allontana(livello){
      document.getElementById(livello).style.opacity=1;
      n_liv=parseInt(livello.substring(5));
      sx=parseInt(document.getElementById(livello).style.left);
      sx_1=parseInt(document.getElementById("Layer"+(n_liv+1)).style.left);
      if((sx_1-sx)==100){
       	for (i=n_liv+1; i<6; i++) { 
    	   sx=parseInt(document.getElementById("Layer"+i).style.left);
           document.getElementById("Layer"+i).style.left=sx+250+"px";
    	   document.getElementById("Layer"+i).style.opacity=0.8;
        }
        zindex=0;
        for (i=2; i<6; i++) { 
    	zindex_1=parseInt(document.getElementById("Layer"+i).style.zIndex);
    	   if (zindex<zindex_1){
    	    zindex=parseInt(document.getElementById("Layer"+i).style.zIndex);
    	   }
    //***********************
        alert("ciao");
    //***********************
    	}
      }
    	document.getElementById(livello).style.zIndex=zindex+1;
     }
    e il messaggio non appare


    EDIT:
    ho provato anche a mettere solo l'alert dopo il primo for e non fa nemmeno quello =\
    sn abbastanza nuovo con javascript (è il mio primo programmino) quindi magari c'è qualcosa che mi sfugge

    codice:
    //ALLONTANAMENTO
     function allontana(livello){
      document.getElementById(livello).style.opacity=1;
      n_liv=parseInt(livello.substring(5));
      sx=parseInt(document.getElementById(livello).style.left);
      sx_1=parseInt(document.getElementById("Layer"+(n_liv+1)).style.left);
      if((sx_1-sx)==100){
       	for (i=n_liv+1; i<6; i++) { 
    	   sx=parseInt(document.getElementById("Layer"+i).style.left);
           document.getElementById("Layer"+i).style.left=sx+250+"px";
    	   document.getElementById("Layer"+i).style.opacity=0.8;
        }
    
    //***********************
        alert("ciao");
    //***********************
    
      }
    	//document.getElementById(livello).style.zIndex=zindex+1;
     }

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    scusa ma fai un ciclo che va fino a 5 ma i layer sono 4?

  5. #5
    saranno 6...ma ... se non li trova si ferma tutto?

    ok .. l'ho detto che sn nuovo di javascript XD grazie ora va

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    nell'esempio i div con id layer sono 4 mentre tu fai un ciclo fino a 5 quindi quando i vale 5 lo script va in errore... e ovviamente quando c'è un errore si ferma tutto. O aggiungi un nuovo layer o diminuisci il ciclo.

  7. #7
    sempre su quel link, vorrei rallentare il movimento, far scorrere un po' più lentamente, come posso fare? o meglio che istruzione devo usare?

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    scusami ma non fai prima a prenderti uno script già pronto e al massimo ci fai qualche modifica? mi sembra inutile che tu ti metta a scrivere tutto da zero sopratutto se non hai le conoscenze adatte.

  9. #9
    non ho niente di meglio da fare =)

    .. a dire il vero ho cercato ma non riesco a trovare nulla che mi vada bene
    la mia idea iniziale era quella di farle ruotare (stile 3d) ma non trovo nulla e siccome i tempi sono ristretti ho fatto prima a fare qualcosa io

    e poi scusa ma tu come sei diventato programmatore?
    non ho chiesto come si fa ma l'istruzione,
    appena avrò finito di fare tutto il resto la cercherò io, ma se mi viene detta qua faccio ricerche più mirate...diciamo che è per cultura mia

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    ma ovvio che se è per studio o semplice cultura/conoscenza fai bene a fartelo da solo... ma visto che la maggior parte degli utenti cerca cose già pronte ho pensato fosse anche il tuo caso

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.