suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Kommaplatzierung im animierten Zahlenzähler

Ich habe verschiedene Kombinationen aus HTML, CSS und JavaScript ausprobiert, die mir einen scrollenden animierten Zahlenzähler mit einem Symbol (+, %, usw.) neben jeder Zahl geben würden. Ich habe endlich die richtige Kombination gefunden; sie ist jedoch noch nicht perfekt. Ich möchte Kommas zu Zahlen ab 1.000 hinzufügen, aber wenn ich Kommas in HTML hinzufüge, wird eine NaN-Ausgabe generiert. Ich bin JavaScript-Neuling und weiß nicht, was ich in meinem aktuellen Code hinzufügen oder korrigieren soll, um Kommas anzuzeigen.

Kann jemand meinen aktuellen Code umschreiben, um Kommas anzuzeigen, oder mir eine Anleitung dazu geben? Für jede Hilfe wäre ich sehr dankbar!

<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粉277824378P粉277824378341 Tage vor584

Antworte allen(1)Ich werde antworten

  • P粉211273535

    P粉2112735352024-01-17 00:50:16

    阅读 HTML 时删除逗号,显示时添加回来。

    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());
          }
        });
      }
    }

    Antwort
    0
  • StornierenAntwort