Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Dziwne zatrzymanie ruchu obiektu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Madlova
Hej,

Z nieznanych mi przyczyn mój obrazek, który wprawiam w ruch zatrzymuje się zamiast od razu wykonywać inny ruch:
Chcę, by po kliknięciu start obrazek się poruszał, po kliknięciu w dany obrazek - zaczął poruszać się w inną stronę. Niestety obrazek za 1szym klikiem zatrzymuje się, a dopiero drugi klik wprawia go w ruch przeciwny. A tak być nie może:(

  1. <div id="start" onClick="start()">Start</div>
  2. <img src="robak.png" id="robak" onClick="zmiana()" style="position: absolute; top: 400px; left: 600px;"/>
  3.  
  4. <script type="text/javascript">
  5. var x=600;
  6. function start(){
  7. document.getElementById("start").innerHTML="";
  8.  
  9. document.getElementById("robak").style.left=x+'px';
  10. x--;
  11. t=setTimeout("start()",20);
  12. if(x==300){
  13. clearTimeout(t);
  14. }
  15.  
  16. }
  17. function zmiana(){
  18.  
  19. x++;
  20. document.getElementById("robak").style.right=x+'px';
  21.  
  22. t=setTimeout("zmiana()",20);
  23. if(x==900){
  24. clearTimeout(t);
  25. }
  26. }
  27.  


Wskazówki mile widziane!
PrinceOfPersia
to proste, po prostu w momencie jak klikniesz, funkcja start dalej się wykonuje, i ruch w prawo i ruch w lewo znoszą się wzajemnie.
dopisz to co jest pogrubione:
Cytat
var x=600;
var t;


oraz:
Cytat
clearTimeout(t);
t=setTimeout("zmiana()",20);
_Borys_
  1. <!DOCTYPE HTML>
  2. <meta http-equiv="content-type" content="text/html" charset="utf-8"/>
  3. <script type="text/javascript">
  4. var move = false;
  5. var x=600;
  6. function start(){
  7. document.getElementById("start").innerHTML="";
  8. zmiana();
  9. }
  10. function zmiana(){
  11. document.getElementById("robak").style.left=x+'px';
  12. !move ? x-- : x++ ;
  13. x == 300 || x == 900 ? clearTimeout(t):t=setTimeout("zmiana()",20);
  14. }
  15. </head>
  16.  
  17. <div id="start" onClick="start();">Start</div>
  18. <img src="robak.png" id="robak" onClick="!move ? move = true : move = false;clearTimeout(t);zmiana();" style="position: absolute; top: 400px; left: 600px;"/>
  19.  
  20.  
  21.  
  22. </body>
  23. </html>
Madlova
Dzięki wielkie Wam obojgu!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.