【问题标题】:Infinite counter with increment at two decimals以两位小数递增的无限计数器
【发布时间】:2020-11-04 23:21:01
【问题描述】:

尝试创建一个从 10.41 开始并每秒增加 10.41 的无限计数器。看过各种教程,但我找不到一个可以解释每秒十进制数单位(10.41)的增加。这是我正在使用的代码:

setTimeout(start, 0);

var i = 100;
var num = document.getElementById('number');

function start() {
  setInterval(increase, 100);
}

function increase() {
    if (i < 100000) {
      i++;
      num.innerText = i;
    }
}

【问题讨论】:

  • 所以在数字上加上 10.41....

标签: jquery counter


【解决方案1】:

如果我理解正确,您需要做的就是使用i += 10.41 而不是i++。我还将初始 i 值更改为零,因为您希望它从 10.41 和计时器开始 1000 而不是 100

setTimeout(start, 0);

var i = 0;
var num = document.getElementById('number');

function start() {
  increase();
  setInterval(increase, 1000);
}

function increase() {
  if (i < 100000) {
    i += 10.41;
    num.innerText = i.toFixed(2);
  }
}
&lt;span id="number"&gt;&lt;/span&gt;

另外,我使用i.toFixed(2); 将其截断到小数点后两位。

【讨论】:

  • 不过,我会num.textContent = i.toFixed(2);
  • 我明白了...谢谢您的帮助....有没有办法将计数器增加 10.41 而不显示小数但仍然计算它们?
  • @Cherubrock74 是的,有.toFixed(2),改成.toFixed(0)
  • @PraveenKumarPurushothaman 不确定我是否应该为此启动另一个线程,但是即使用户浏览同一网站上的不同网页,是否有办法保持计数器计数?某种会话计数器?请指教谢谢
  • @Cherubrock74 使用 JavaScript 是不可能的,因为......或者是的,正如你所说,你可以做一个会话计数器。想问另一个问题吗?很高兴回答这个问题! ? 不要使用局部变量,而是使用会话存储变量。但请记住,您只能在支持 localStorage API 的浏览器中使用它。
【解决方案2】:

我愿意:

function Incro(increment, interval, execFunc){
  let iv;
  this.increment = increment; this.interval = interval; this.execFunc = execFunc; this.sum = 0;
  this.start = ()=>{
    iv = setInterval(()=>{
      this.sum += this.increment; this.execFunc();
    }, this.interval);
    return this;
  }
  this.stop = ()=>{
    clearInterval(iv); iv = undefined;
  }
}
const incro = new Incro(10.41, 1000, function(){
  console.clear(); console.log(this.sum.toFixed(2));
  if(this.sum > 100)this.stop();
});
console.log('0.00');
incro.start();
setTimeout(()=>{
  incro.stop();
  setTimeout(()=>{
    incro.start();
  }, 2000);
}, 5150);

如您所见,JavaScript 时间并不准确。

【讨论】:

  • 谢谢...java脚本时间不准确是什么意思?
猜你喜欢
  • 1970-01-01
  • 2014-08-01
  • 2013-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多