Problème JS counter

Résolu
NulEnJS -  
 NulEnJS -
Bonjour,

J'ai un site web où j'aimerai afficher des chiffres clés et j'aimerai avoir une animation dessus, par exemple, nombre d'années d'expérience = 10, j'aimerai faire une animation avec un chiffre qui va de 1 à 10. Je ne mis connais pas en JS mais j'ai trouvé un petit bloc de code que j'ai essayé d'adapter à ma sauce mais ce dernier ne fonctionne malheureusement pas :/

Voici mon HTML :
<section>
<div class="container">
    <div class="row">
        <div class="col-md-4 col-sm-6">
            <div class="counter">       
                <div class="counter-icon"><i class="fa fa-globe"></i></div>
                <span class="counter-value">7</span>
                <h3>Années d'Expérience</h3>
            </div>
        </div>
        <div class="col-md-4 col-sm-6">
            <div class="counter red">
                <div class="counter-icon"><i class="fa fa-user-circle"></i></div>
                <span class="counter-value">400</span>
                <h3>Clients</h3>
            </div>
        </div>
        <div class="col-md-4 col-sm-6">
            <div class="counter green">
                <div class="counter-icon"><i class="fa fa-rocket"></i></div>
                <span class="counter-value">17</span>
                <h3>Domaines de Compétences</h3>
            </div>
        </div>
    </div>
</div>
</section>


Voici mon CSS :
    .counter{
    font-family: 'Montserrat Alternates', sans-serif;
    text-align: center;
}  
.counter .counter-icon{
    color: #fff;
    background-color: #479C97;
    font-size: 40px;
    line-height: 90px;
    height: 100px;
    width: 100px;
    margin: 0 auto;
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(0,0,0,0.3);
}
.counter .counter-value{
    color: #479C97;
    background-color: #eee;
    font-size: 35px;
    font-weight: 400;
    letter-spacing: 0.5px;
    padding: 15px;
    margin: -25px 0 0;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0,0,0,0.3);
    display: block;
}
.counter h3{
    color: #fff;
    background-color: #479C97;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: 1px;
    text-transform: capitalize;
    padding: 8px 12px;
    margin: 0;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 5px 5px rgba(0,0,0,0.2) inset;
    display: inline-block;
}
.counter.green .counter-icon,
.counter.green h3{
    background-color: #5ECDC6;
}
.counter.green .counter-value{ color: #5ECDC6; }
.counter.red .counter-icon,
.counter.red h3{
    background-color: #2EBFBE;
}
.counter.red .counter-value{ color: #2EBFBE; }
.counter.orange .counter-icon,
.counter.orange h3{
    background-color: #F89128;
}
.counter.orange .counter-value{ color: #F89128; }
@media screen and (max-width:990px){
    .counter{ margin-bottom: 40px; }
}


Voici mon JS (que j'aimerai modifier pour que ça fonctionne ahah) :
document.querySelector(document).ready(function(){
    document.querySelector('.counter-value').each(function(){
        document.querySelector(this).prop('Counter',0).animate({
            Counter: document.querySelector(this).text()
        },{
            duration: 3500,
            easing: 'swing',
            step: function (now){
                document.querySelector(this).text(Math.ceil(now));

            }
        });
    });
});

2 réponses

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Essaye de corriger les autres erreurs qui doivent bloquer l'exécution du reste de ton script. De mon coté le code fonctionne correctement sans autres script : https://jsfiddle.net/jmkp87r0/
1
NulEnJS
 
Ok super merci je vais regarder ça ! :)
0
NulEnJS
 
Du coup c'est bon merci !!

J'avais juste un script qui posé problème sur le code...

En tout cas merci à tous pour vos précieuses aides !!
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Bonjour,

A priori tu utilises Bootstrap, je suppose donc que tu inclus déjà jQuery dans ton document.
Si oui, tu peux remplacer toutes les occurrences document.querySelector(truc) par $(truc) dans ton code js.
0
NulEnJS
 
Bonjour,

Merci de votre réponse, c'est ce que j'avais fais dès le début mais ça ne fonctionnait pas non plus :/

Voici le code jQuery que j'avais :
$(document).ready(function(){
    $('.counter-value').each(function(){
        $(this).prop('Counter',0).animate({
            Counter: $(this).text()
        },{
            duration: 3500,
            easing: 'swing',
            step: function (now){
                $(this).text(Math.ceil(now));
            }
        });
    });
});
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527 > NulEnJS
 
Des erreurs dans la console du navigateur ?
0
NulEnJS > Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention  
 
Oui,

J'ai essayé de faire un console.log("test"),
Le "test" s'affiche quand je le met au début de mon script mais quand je le met plus bas dans le script, il ne s'affiche plus :/
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527 > NulEnJS
 
Oui tu as des erreurs dans la console ? Lesquelles ?
0
NulEnJS > Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai des erreurs dans la console mais par rapport à d'autres script du code ://

Par rapport à ce script là, ça ne m'affiche pas d'erreur
0