Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.02.2020, 20:17
Аспирант
Отправить личное сообщение для samdo Посмотреть профиль Найти все сообщения от samdo
 
Регистрация: 27.05.2017
Сообщений: 98

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

Если поможете - буду благодарен.
Ответить с цитированием
  #2 (permalink)  
Старый 10.02.2020, 20:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

samdo,
https://javascript.ru/forum/misc/786...tml#post514289
Ответить с цитированием
  #3 (permalink)  
Старый 10.02.2020, 20:30
Аспирант
Отправить личное сообщение для samdo Посмотреть профиль Найти все сообщения от samdo
 
Регистрация: 27.05.2017
Сообщений: 98

Спасибо, это решение. Но вот как пункт 3 реализовать?
Ответить с цитированием
  #4 (permalink)  
Старый 10.02.2020, 20:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

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>
Ответить с цитированием
  #5 (permalink)  
Старый 10.02.2020, 20:45
Аспирант
Отправить личное сообщение для samdo Посмотреть профиль Найти все сообщения от samdo
 
Регистрация: 27.05.2017
Сообщений: 98

Спасибо! )
Ответить с цитированием
  #6 (permalink)  
Старый 10.02.2020, 21:49
Аспирант
Отправить личное сообщение для samdo Посмотреть профиль Найти все сообщения от samdo
 
Регистрация: 27.05.2017
Сообщений: 98

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

Последний раз редактировалось samdo, 10.02.2020 в 21:52.
Ответить с цитированием
  #7 (permalink)  
Старый 10.02.2020, 22:01
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

samdo,
https://developer.mozilla.org/ru/doc...w/localStorage
Ответить с цитированием
  #8 (permalink)  
Старый 10.02.2020, 22:13
Аспирант
Отправить личное сообщение для samdo Посмотреть профиль Найти все сообщения от samdo
 
Регистрация: 27.05.2017
Сообщений: 98

А подскажите как это в Ваш код добавить правильно? И всё... и я отстал)
Ответить с цитированием
  #9 (permalink)  
Старый 10.02.2020, 22:58
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от 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>
Ответить с цитированием
  #10 (permalink)  
Старый 11.02.2020, 18:10
Аспирант
Отправить личное сообщение для samdo Посмотреть профиль Найти все сообщения от samdo
 
Регистрация: 27.05.2017
Сообщений: 98

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создается function Function(){} ? Cepairda Общие вопросы Javascript 0 10.02.2016 15:03
переманную как условие в if блок xas Общие вопросы Javascript 3 02.02.2016 21:17
initComponent: Как получить данные родителя и как получить store для вызова load()? Пролетарий ExtJS 76 04.07.2015 09:22
Как сделать что бы картинки с другого url отображались как свои zlodey Серверные языки и технологии 1 04.05.2015 21:30
Как правильно реализовать такой функционал? Julian Общие вопросы Javascript 3 16.01.2015 12:34