Placement des virgules dans le compteur de nombres animé
P粉277824378
P粉277824378 2024-01-16 14:43:34
0
1
582

J'ai essayé différentes combinaisons de HTML, CSS et JavaScript qui me donneraient un compteur de nombres animé et défilant avec un symbole (+, %, etc.) à côté de chaque nombre. J'ai finalement trouvé la bonne combinaison, mais elle n'est pas encore parfaite. Je souhaite ajouter des virgules aux nombres 1 000 et supérieurs, mais lorsque j'ajoute des virgules en HTML, cela génère une sortie NaN. Je suis très nouveau sur JavaScript et je ne sais pas quoi ajouter ou corriger dans mon code actuel pour afficher les virgules.

Quelqu'un peut-il réécrire mon code actuel pour afficher des virgules ou me guider sur la façon de procéder ? Je serais très reconnaissant pour toute aide!

<script>
function inVisible(element) {
  //Checking if the element is
  //visible in the viewport
  var WindowTop = $(window).scrollTop();
  var WindowBottom = WindowTop + $(window).height();
  var ElementTop = element.offset().top;
  var ElementBottom = ElementTop + element.height();
  //animating the element if it is
  //visible in the viewport
  if ((ElementBottom <= WindowBottom) && ElementTop >= WindowTop)
    animate(element);
}

function animate(element) {
  //Animating the element if not animated before
  if (!element.hasClass('ms-animated')) {
    var maxval = element.data('max');
    var html = element.html();
    element.addClass("ms-animated");
    $({
      countNum: element.html()
    }).animate({
      countNum: maxval
    }, {
      //duration 2 seconds
      duration: 2000,
      easing: 'linear',
      step: function() {
        element.html(Math.floor(this.countNum) + html);
      },
      complete: function() {
        element.html(this.countNum + html);
      }
    });
  }
}
//When the document is ready
$(function() {
  //This is triggered when the
  //user scrolls the page
  $(window).scroll(function() {
    //Checking if each items to animate are
    //visible in the viewport
    $("h2[data-max]").each(function() {
      inVisible($(this));
    });
  })
});
</script>

P粉277824378
P粉277824378

répondre à tous(1)
P粉211273535

Supprimez les virgules lors de la lecture du HTML et ajoutez-les à nouveau lors de l'affichage.

function animate(element) {
  //Animating the element if not animated before
  if (!element.hasClass('ms-animated')) {
    var maxval = element.data('max');
    var html = element.html();
    element.addClass("ms-animated");
    $({
      countNum: parseInt(element.html().replace(/,/g, '')) // remove commas
    }).animate({
      countNum: maxval
    }, {
      //duration 2 seconds
      duration: 2000,
      easing: 'linear',
      step: function() {
        element.html((Math.floor(this.countNum) + html).toLocaleString());
      },
      complete: function() {
        element.html((Math.floor(this.countNum) + html).toLocaleString());
      }
    });
  }
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal