Salutations,

Voila, je veux afficher un genre de résultats d'élection. Pour cela j'utilise une progressbar pour chaque resultat, je recupère la valeur depuis mysql et l'implante dans la valeur max de progress.

//$p correspond à la valeur retourné de bsd
<div class="progressdiv">
    <p>Score...0%</p>
    <progress class="progressbarre" value="0" min="0" max="<?php echo $p ?>"></progress> 
</div>

Apres j'aimerai savoir comment gérer plusieurs progression en même temps sachant que si j'en ai 2,3 ou 100.
J'ai tenté quelque chose comme ça mais ça ne fonctionne pas

$(".progressbarre").each(function(){

        progressbar = $(this);
        max = progressbar.attr('max');
        time = (300/max)*5, 
        value = progressbar.val(); 

        var loading = function() { 
            value += 0.5; 
            addValue = progressbar.val(value); 

            progressbar.prev().html(value + '%'); 

            if (value == max) { 
            clearInterval(animate); 
            } 
        }; 

        var animate = setInterval(function() { 
        loading(); 
        }, time); 

});

1 réponse


Vincerolf
Auteur
Réponse acceptée

Voila comment j'ai fait avec velocity éé, j'ai laissé tomber <progress> et opté pour de bonnes vielles div : Ce qui est interessant c'est
l'option Progress de Vélocity.

///////////////////////////////css///////////////////
.sup_progressbarre{
    width: 135px;
    height: 15px;
    border: 1px solid #666666;
    border-radius: 5px;

}
.progressbarre{
    display: none;
    height: 13px;
    border-radius: 5px;
    background-color: rgba(83,255,23,.8);
}
.progressdiv p{
    font-family: bold;
    color: #666666;
    height: 20px;
}
////////////////////////////////html///////////////////
// l'idée c'est d'avoir plusieurs structures comme celle la
<div class="progressdiv" data-res="<?php echo $p ?>">
    <p></p>
    <div class="sup_progressbarre">
    <div class="progressbarre"></div> 
    </div>
</div>
////////////////////////////////js/jquery////////////////////
$(".progressbarre").each(function(){

    var progressbar = $(this);

    var val = progressbar.parent().parent().data('res'); 
    var val = val+33;
    progressbar.velocity(
        {
            width:val
        },{
            easing: "swing",
            duration:10000,
            display:'block',
            progress:function(elements,percentComplete,timeRemaining, timeStart){
                progressbar.parent().prev().html('Score...'+(Math.round(percentComplete*(val-33)))+'%');    

            },
        }
    );
});