同一页面上有多个js进度条?

时间:2015-07-13 22:23:03

标签: javascript jquery arrays oop progress-bar

我正在使用progressbar.js处理项目,我希望在我的页面上有多个进度条。有一个动态的数量,所以我不能提前确定我将在页面上有多少进度条。

我的JSFiddle我只是复制了代码,并为第二个进度条提供了一个 .progress2 类。理想情况下,我希望让每个元素的进度条工作,只需给它一个 .progress

http://jsfiddle.net/8xa87k31/497/

var circle = new ProgressBar.Circle('.progress', {
    color: startColor,
    easing: 'linear',
    strokeWidth: 8,
    duration: 1500,
    text: {
        value: '0'
    }
});

显然,我想我会先收集价值并将其放入数组中,但我甚至无法实现这一点。有人可以给我一个正确的方向,因为我对javascript不太好。

如果有人看一看并告诉我这是否可以按照我想要的方式完成,我将非常感激。

1 个答案:

答案 0 :(得分:6)

晚上斯蒂芬,

我认为这正是您所寻找的:http://jsfiddle.net/8xa87k31/499/

$('.progress').each(function() {
    var circle = new ProgressBar.Circle(this, {
        color: startColor,
        easing: 'linear',
        strokeWidth: 8,
        duration: 1500,
        text: {
            value: '0'
        }
    });

    var value = ($(this).attr('value') / 100);

    circle.animate(value, {
        from: {
            color: startColor
        },
        to: {
            color: endColor
        },
        step: function(state, circle, bar) {
            circle.path.setAttribute('stroke', state.color);
            console.log(circle);
            circle.setText((circle.value() * 100).toFixed(0));
        }
    });
});

请参阅?没什么大不了! : - )

NB:我确信,这可以改善。