十进制值

时间:2018-05-03 19:10:19

标签: javascript

我从不同的帖子中获得了这个动画功能

function animateValue(id, start, end, duration) {
    var obj = document.getElementById(id);
    var range = end - start;

    var minTimer = 50;
    var stepTime = Math.abs(duration / range);
    stepTime = Math.max(stepTime, minTimer);

    var startTime = new Date().getTime();
    var endTime = startTime + duration;
    var timer;

    function run() {
        var now = new Date().getTime();
        var remaining = Math.max((endTime - now) / duration, 0);
        var value = end - (remaining * range);

        obj.innerHTML = (value).toLocaleString('en', { maximumFractionDigits: 16 });
        if (value == end) clearInterval(timer);
    }
    var timer = setInterval(run, stepTime);
    run();
}

哪个效果很好!我每秒更新一次正常工作的值,直到值下降并且涉及小数。在这一点上计数错误,我认为这是因为时机并不完美。我该如何解决这个问题?我似乎无法弄明白。

您可以在此处查看错误:https://jsfiddle.net/rrnop6q6/

0 个答案:

没有答案