Javascript / jQuery -如何在一段时间内保持同一变量的两种状态

Javascript / jQuery - How to keep 2 states of the same variable over time

本文关键字:变量 状态 两种 jQuery 一段时间 Javascript      更新时间:2023-09-26

我的问题是逻辑和javascript相关的

我的目标是为jquery计数器提供,其中随时间提供相同变量的两个状态,以便每x秒它从开始状态增加到结束状态。

在循环结束时,我想让结束状态成为下一个开始状态,以此类推…

注意,我是从一个php文件中检索变量值的。(编辑)变量在函数外声明:

var $publishersCurvalue,
    $minTime,
    ...
这是我的柜台。它每隔5秒刷新一次。由于我只使用了一个变量状态($publishersCurvalue),结果是它从以前的状态跳转到新的状态。

如何在每个循环中同时获得前一个值和新值?我试了好几种方法,但都不成功。

我的目的是在计数器读取两个不同的值时触发递增动画。

var $i = 0;
function publisherCounter() {
    $.getJSON("counter.php?t=p", function(result) {
        // defalut values
        $minTime                      = result[0].minTime;
        $max                          = result[0].max;
        $curTime                      = result[0].curTime;
        // current value
        $publishersCurvalue           = result[0].curValue;
        // Publishers values
        $publisherMinResult           = result[0].min;
        $publisherIncPerDay           = result[0].incPerDay;
        // frequency
        $publisherIncPerDayResultTemp = parseInt((($curTime - $minTime)/86400) * $publisherIncPerDay);
        $publisherIncPerDayResult     = parseInt(86400/$publisherIncPerDayResultTemp);
        $('#counter_publishers').addClass('counter-analog').counter({
            initial: $publishersCurvalue,
            direction: 'up',
            interval: 1,
            format: '9999999',
            stop: $publishersCurvalue
        });
    });
    $i++;
};
setInterval(publisherCounter, 5000);
publisherCounter();

$publishersCurvalue从一个简单的变量更改为具有两个属性的对象:

// wherever you declare it...
var $publishersCurvalue = {
    prev: 0,
    cur: 0
};
...
// current value
$publishersCurvalue.cur = result[0].curValue;
...
$('#counter_publishers').addClass('counter-analog').counter({
    initial: $publishersCurvalue.prev,
    direction: 'up',
    interval: 1,
    format: '9999999',
    stop: $publishersCurvalue.cur
});

我不太明白你的意图,所以你可能需要改变你对prevcur的使用。