0

我的问题既合乎逻辑又与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();
4

1 回答 1

0

$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
});

我不太了解您的意图,因此您可能需要更改对prevand的使用cur

于 2013-03-29T14:09:32.670 回答