Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Niewłaściwe zachowanie timera
Forum PHP.pl > Forum > Przedszkole
Dominator
Witajcie

Przejdę od razu do rzeczy, a mianowicie mam sobie tzw. 'timer', który po minięciu 4.0 sekund ma coś robić, jednakże on coś robi po 4.4 sekundy - dlaczego ? Co tu jest źle ?

  1. var czas = 0,
  2. minelo = '0.0';
  3. window.setInterval(function()
  4. {
  5. czas += 100;
  6. minelo = Math.floor(czas / 100) / 10;
  7. if(Math.round(minelo) == minelo)
  8. {
  9. minelo += '.0';
  10. }
  11. if(Math.round(minelo) > 4.0)
  12. {
  13. stop()
  14. }
  15. else
  16. {
  17. document.write(minelo + "<br>");
  18. }
  19. }, 100);


Odświeżam.

F5
tolomei
Witaj.
Problem jest w tej linijce:

Kod
Math.round(minelo) > 4.0


bo

Kod
Math.round(4.0) == 4
Math.round(4.1) == 4
Math.round(4.2) == 4
Math.round(4.3) == 4
Math.round(4.4) == 4


Dodatkowo użyj sobie clearInterval() bo to leci w nieskończoność.

Pozdrawiam smile.gif
Dominator
Zamieniłem to na


  1. if(Math.round(minelo) == 4.0)



I zatrzymuje się na 3.4
tolomei
heh no dlatego że:

Kod
Math.round(3.5) == 4
Math.round(3.6) == 4
Math.round(3.7) == 4
Math.round(3.8) == 4
Math.round(3.9) == 4


smile.gif

Zmień warunek na taki:

Kod
if(parseFloat(minelo) > 4)


Pozdro
Dominator
Dziękuję bardzo. Kod działa smile.gif
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.