Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    8

    animazione jquery con ciclo while

    salve ragazzi,sto cercando di testare uno script che detecta la collisone con un altro oggetto,lo script funziona perchč mi restituisce true se il div č stato toccato dal altro div ma facendolo in un animazione non sembra funzionare anzi il mio cilo while per ogni volta che si ripete fa solamente l'animazione
    io vorrei che
    il div1 si muova di +50 fincheč il contatore non arriva a 4
    se muovendosi incontra il div2 dovrebbe fare un passo indietro di -50

    ma questo non funziona perchč il ciclo si accorge che il div1 si č collisionato solo quando si č fermato e quindi quando clicco nuovamente il bottone per farlo andare.
    il problema credo sia nel cilo perchč ho provato a fargli scrivere un numero random ogni volta che si muove quindi nel secono if ma mi restuiisce solo un solo numero random per tutto il ciclo.
    il mio codice č questo.

    Codice PHP:
    <!DOCTYPE html
    <
    html> <head>  
     <
    style#div1 {   position:absolute;   background-color:#abc;   left:50px;   width:90px;   height:90px;   margin:5px; } #div2 {   position:absolute;   background-color:#eee;   left:200px;   width:90px;   height:90px;   margin:5px; } </style>
     
    <script src="http://code.jquery.com/jquery-latest.js"></script> <scripttype="text/javascript" src="coll.js"></script> 
    </head> 
    <body> <button id="right">&raquo;</button> 
    <div id=div1 class="block"></div> 
    <div id=div2 ></div>
     <script>
      $("#right").click(function()
    {  var m=0;     
    while(m<4) { 
     var coll = $.collision('#div1,#div2'); 
     if(coll==true)  {    $("#div1").animate({"left": "-=50px"}, "slow");   }
     if(coll==false) {  $(".block").animate({"left": "+=50px"}, "slow");  } 
     m++; }     });    </script>  </body> </html> 
    dove sbaglio?
    ho provato a utilizzare un cilco for ma č uguale

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    non puoi usare un ciclo in questo modo,
    prova un approccio del genere
    codice:
    $("#right").click(function(){  	
    	var k=0, anim=function(){$("#div2").animate({"left": "-=50px"}, "slow", function(){k++; if(k<4) anim()});}
    	anim()
    });
    che capisco non essere il massimo
    o prova a valutare cosa fare nella step function di animate

    ciao

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.