• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

jak zrobic odliczanie w javascript

Object Storage Arubacloud
0 głosów
406 wizyt
pytanie zadane 21 listopada 2017 w JavaScript przez BlvckFox Gaduła (4,240 p.)
Witam, jak zrobić w CZYSTYM jsie odliczanie od 0 do 100 a gdy juz osiagnie 100 spadac do 0 i tak w nieskończoność? Probowałem z while,for i setinterval i nic nie przychodzi mi konkretnego do głowy jak można to dobrze i opytmalnie rozwiązać.

https://codepen.io/FoxCode/pen/WXzEKX

4 odpowiedzi

+3 głosów
odpowiedź 21 listopada 2017 przez elwood Gaduła (4,180 p.)

To ja jeszcze troszkę inaczej...

const count = document.querySelector(".count");

  var i = 0;
  var inc = 1;

setInterval(function(){ 
  
    count.innerHTML = i;
    i = i + inc;
  
    if(i === 100 || i === 0){
      inc = inc * -1;
    }
}, 100);

 

0 głosów
odpowiedź 21 listopada 2017 przez rafal.budzis Szeryf (85,260 p.)
Pętle w JS działają trochę inaczej niż w C++. Gdy wykonujesz jakąś funkcje lub pętle w JS dopiero po skończeniu jej działania renderuje się wygląd i pokazuje się określona liczba dlatego musisz użyć setinterval. Jedyne czego ci brakuje to wracania.

Zrobił bym to tak :

dodał zmienną "odwrotność" w zależności od jej wartości dodawał lub odejmował od i wartosć 1. Potem jeszcze bym zmieniał wartość tej zmiennej jeśli bedziemy mieli niej niż 0 i zmienna była na odejmowanie ustawione ustaw dodawanie w przeciwnym wypadku sprawdz czy jest większa od 100 i miała dodawanie jeśli tak ustaw odejmowanie.
komentarz 21 listopada 2017 przez BlvckFox Gaduła (4,240 p.)
"dodał zmienną "odwrotność" w zależności od jej wartości dodawał lub odejmował od i wartosć 1. Potem jeszcze bym zmieniał wartość tej zmiennej jeśli bedziemy mieli niej niż 0 i zmienna była na odejmowanie ustawione ustaw dodawanie w przeciwnym wypadku sprawdz czy jest większa od 100 i miała dodawanie jeśli tak ustaw odejmowanie."
Trochę to pogmatwane, mógłbyś napisać to w formie jakiegoś kodu? Albo tylko w podobnym jezyku (nie musi dzialac)
0 głosów
odpowiedź 21 listopada 2017 przez kap Stary wyjadacz (11,620 p.)

Inne śmieszne rozwiązanie:
 

const fn = x => 100 - Math.abs(x - 100)

const go = (n = 0) => {
  const res = fn(n)
  // zakomentuj naastępną linię by nie zapętlać:
  n = res ? n : 0
  
  console.log(res)
  
  if (res || !n) {
    setTimeout(go, 100, ++n)
  }
}

go()

 

0 głosów
odpowiedź 21 listopada 2017 przez Jacek Rojek Bywalec (2,380 p.)
edycja 21 listopada 2017 przez Jacek Rojek

moze takie cos? https://codepen.io/JacekRojek/pen/BmrrLE

const count = document.querySelector(".count");

let sign = 1
setInterval(function(){
  const oldValue = count.innerHTML
  const newValue = parseInt(oldValue) + 1 * sign;
  if(newValue > 100) {
    sign = -1
  } else if (newValue < 0){
    sign = 1
  }
  count.innerHTML = parseInt(oldValue) + 1 * sign
}, 100);

albo tak: 

const count = document.querySelector(".count");

loop = () => {
  let x = 0
  const interval = setInterval(() => {
    x++
    const newValue = 100 - Math.abs(x - 100)
    count.innerHTML = newValue
    if (newValue <= 0) {
      clearInterval(interval)
      loop()
    }
  }, 100);
}

loop()

 

Podobne pytania

0 głosów
2 odpowiedzi 188 wizyt
pytanie zadane 11 czerwca 2017 w SQL, bazy danych przez glocek2121 Nowicjusz (160 p.)
0 głosów
1 odpowiedź 1,217 wizyt
pytanie zadane 11 września 2018 w Ogłoszenia, zlecenia przez Nimplex Początkujący (460 p.)
0 głosów
1 odpowiedź 236 wizyt
pytanie zadane 11 maja 2018 w PHP przez Browarnik123 Użytkownik (830 p.)

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...