Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Прибавление чисел (как в счетчике) (https://javascript.ru/forum/misc/79446-pribavlenie-chisel-kak-v-schetchike.html)

samdo 10.02.2020 20:17

Прибавление чисел (как в счетчике)
 
Приветствую, есть задачка, которая нуждается в реализации) а именно, сделать четыре блока с динамично меняющимися числами:
1. Число начинается с 4000, каждые 2-3 секунды к нему прибавляется рандомное число от 20 до 100. Число сбрасывается назад до 5000 каждые сутки.
2. Число начинается с 8000, каждую секунду к нему прибавляется рандомное число от 1000 до 20000. Число сбрасывается назад до 10000 каждые сутки.
3. Тут число, которое составляет сумму = число в пункте №2 +0.8%.
4. Число начинается с 50, каждую секунду к нему прибавляется рандомное число от 20 до 100. Не обнуляется.

Если поможете - буду благодарен.

рони 10.02.2020 20:23

samdo,
https://javascript.ru/forum/misc/786...tml#post514289

samdo 10.02.2020 20:30

Спасибо, это решение. Но вот как пункт 3 реализовать?

рони 10.02.2020 20:40

samdo,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>

  <script>
document.addEventListener('DOMContentLoaded', ready);
function ready()
{
   const options = {
        increment: 1000,
        different: 19000,
        basic: 8000,
        delay: 0,
        differentDelay: 1000,
        elem: document.querySelector('.box')
      };
   const random = (increment, different) => increment + Math.random() * different | 0;
   const loop = () => {
       options.elem.innerHTML = options.basic;
       document.querySelector('.bx').innerHTML = options.basic * 1.008|0;
       options.basic += random(options.increment, options.different);

       setTimeout(loop, random(options.delay, options.differentDelay))
   }
   loop()
}

  </script>
</head>

<body>
<div class="box"></div>
<div class="bx"></div>
</body>
</html>

samdo 10.02.2020 20:45

Спасибо! )

samdo 10.02.2020 21:49

А реально сюда обнуление каждые сутки добавить? И чтобы числа не сбрасывалиь после перезагрузки страницы.

рони 10.02.2020 22:01

samdo,
https://developer.mozilla.org/ru/doc...w/localStorage

samdo 10.02.2020 22:13

А подскажите как это в Ваш код добавить правильно? И всё... и я отстал)

рони 10.02.2020 22:58

Цитата:

Сообщение от samdo
А реально сюда обнуление каждые сутки добавить? И чтобы числа не сбрасывалиь после перезагрузки страницы.

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>

  <script>
document.addEventListener("DOMContentLoaded", ready);
function ready()
{
   const options = {
        increment: 1000,
        different: 19000,
        basic: +JSON.parse(localStorage.getItem("basic") || "8000"),
        delay: 0,
        differentDelay: 1000,
        elem: document.querySelector(".box")
      };

   const random = (increment, different) => increment + Math.random() * different | 0;
   const loop = () => {
       const time = +JSON.parse(localStorage.getItem("time") || "0");
       const duration = 24 * 60 * 60 * 1000; //сутки
       const date = new Date;
   if(time < date.getTime()){
         localStorage.setItem("time", date.getTime() + duration);
         localStorage.setItem("basic", "8000");
         options.basic = 8000;
   };
       options.elem.innerHTML = options.basic;
       document.querySelector(".bx").innerHTML = options.basic * 1.008|0;
       options.basic += random(options.increment, options.different);
       localStorage.setItem("basic", options.basic);
       setTimeout(loop, random(options.delay, options.differentDelay))
   }
   loop()
}

  </script>
</head>

<body>
<div class="box"></div>
<div class="bx"></div>
</body>
</html>

samdo 11.02.2020 18:10

Еще одной фишки не хватает) Что добавить, чтобы разделить числа на разряды (отбивка тысяч пробелами)?


Часовой пояс GMT +3, время: 04:41.