【问题标题】:Increase by 1 every X seconds每 X 秒增加 1
【发布时间】:2016-02-26 11:37:47
【问题描述】:

我正在尝试编写一个代码来计算自 2016 年初以来有多少人出生在 X 国。我没有太多的编码经验,这就是我想出来的。 'd' 是现在,'b' 是 Unix 时间到 2016 年 1 月 1 日之前的毫秒数。我的主要问题是,当页面加载时,计数器不会立即出现,而是需要整整 12 秒才能出现计数。

有没有更简单的方法可以立即加载数字? 谢谢!

<span id="number"></span>
<script type="text/javascript">
    var d = new Date();
      document.getElementById('number').innerHTML = d.getTime();
    var b = 1451606400000;
    var i = ((d - b) / 12024);
    var x = Math.round(i); 
    function increment() {
      x++;
      document.getElementById('number').innerHTML = x;
    }
    setInterval('increment()', 12024);
</script>

【问题讨论】:

    标签: javascript counter setinterval increment


    【解决方案1】:

    在初始化时设置x 而不是d

    var d = new Date();
    var b = 1451606400000;
    var i = ((d - b) / 12024);
    var x = Math.round(i); 
    document.getElementById('number').innerHTML = x; // Here
    function increment() {
        x++;
        document.getElementById('number').innerHTML = x;
    }
    setInterval(increment, 12024);
    &lt;span id="number"&gt;&lt;/span&gt;

    【讨论】:

    • 解决了!惊人的!非常感谢!!这非常有用,而且速度非常快。
    • @DanielS 没问题!
    【解决方案2】:

    问题是 setInterval 在达到最初的 12 秒延迟之前不会调用 increment,并且在调用 increment 之前不会设置您的 innerHTML

    一种解决方案是将x 分配给innerHTML 一旦x 具有适当的值...

    <script type="text/javascript">
        var d = new Date();
        var b = 1451606400000;
        var i = ((d - b) / 12024);
        var x = Math.round(i); 
        document.getElementById('number').innerHTML = x;
        function increment() {
          x++;
          document.getElementById('number').innerHTML = x;
        }
        setInterval(increment, 12024);
    </script>
    

    【讨论】:

    • 解决了!惊人的!非常感谢!!这非常有用,而且速度非常快。
    • 很高兴我能帮助@DanielS :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多