递增器

var ProgTimer = function(f){
    // 从0到100递增,递增过程中回调
    this.callback = f
    this.timer = 0
    this.value = 0
    this.maxValue = 100
    this.speed = 300
}
ProgTimer.prototype.inc = function(){
    // 递增
    var that = this;
    var n = Math.random() * 50
    this.value += n
    if(this.value > this.maxValue){
        this.value = this.maxValue
    }
    if(this.callback){
        this.callback(this.value)
    }
    if(this.value < this.maxValue){
        this.timer = setTimeout(function(){that.inc()},this.speed)
    }else{
        this.release()
    }
    
}
ProgTimer.prototype.release = function(){
    // 释放
    if(this.timer){
        clearTimeout(this.timer);
    }
    this.timer = 0
    this.value = 0
}

用法: 

var prog = new ProgTimer(function(v){/*回调*/});

prog.inc();

你可能感兴趣的:(递增器)