Heim >Web-Frontend >js-Tutorial >js-Implementierung des Beispielcodes für digitale Inkrement-Spezialeffekte

js-Implementierung des Beispielcodes für digitale Inkrement-Spezialeffekte

怪我咯
怪我咯Original
2017-07-06 11:34:423378Durchsuche

In diesem Artikel wird hauptsächlich die JS-Implementierung digitaler Inkrementierungseffekte vorgestellt, die Alipay My Wealth imitiert und einen sehr guten Referenzwert hat. Schauen wir es uns mit dem Redakteur unten an

Letzten Freitag haben wir als Reaktion auf den vorübergehenden Bedarf des Unternehmens die offizielle Website an einem Tag gelöst (ps: relativ einfach, haha). Es gibt einen besonderen Effekt in der Die Anforderung besteht darin, die Zahl auf einen bestimmten Wert zu erhöhen. Tatsächlich ist das Schreiben von JS nicht kompliziert, aber ich habe ein kleines JS-Plug-In gefunden, das leicht und einfach ist und auch sehr einfach und praktisch ist verwenden. Teile es hier mit deinen kleinen Freunden, nimm es, wenn es dir gefällt.

Das Obige ist der Effekt dieses Plug-Ins. Schauen wir uns an, wie man es verwendet

Erstens: Hier ist eine kurze Beschreibung Liste des HTML-Teils

 <p class="counter col_fourth">
  <h2 class="timer count-title" id="count-number" data-to="300" data-speed="1500"></h2>
  <p class="count-text ">小月博客</p>
 </p>

Lassen Sie uns zwei wichtige Dinge oben verstehen:

  • Daten-zu diesesAttributSteuern Sie den Endwert, den Sie erhöhen möchten

  • Datengeschwindigkeit Die Bedeutung davon auf Englisch ist sehr klar Es bedeutet, dass die Geschwindigkeit der Daten zunimmt

ps: Die Klasse und die ID hier können entsprechend den eigenen Modifikationen jedes Einzelnen angepasst werden,

Zweitens: Der JS-Teil ist auch der Kerncode des Plug-Ins

$.fn.countTo = function(a) {
  a = a || {};
  return $(this).each(function() {
   var c = $.extend({},
   $.fn.countTo.defaults, {
    from: $(this).data("from"),
    to: $(this).data("to"),
    speed: $(this).data("speed"),
    refreshInterval: $(this).data("refresh-interval"),
    decimals: $(this).data("decimals")
   }, a);
  var h = Math.ceil(c.speed / c.refreshInterval),
  i = (c.to - c.from) / h;
  var j = this,
  f = $(this),
  e = 0,
  g = c.from,
  d = f.data("countTo") || {};
  f.data("countTo", d);
  if (d.interval) {
   clearInterval(d.interval)
  }
  d.interval = setInterval(k, c.refreshInterval);
  b(g);
  function k() {
   g += i;
   e++;
   b(g);
   if (typeof(c.onUpdate) == "function") {
    c.onUpdate.call(j, g)
   }
   if (e >= h) {
    f.removeData("countTo");
    clearInterval(d.interval);
    g = c.to;
    if (typeof(c.onComplete) == "function") {
     c.onComplete.call(j, g)
    }
   }
  }
  function b(m) {
   var l = c.formatter.call(j, m, c);
   f.html(l)
  }
 })
};
$.fn.countTo.defaults = {
  from: 0,
  to: 0,
  speed: 1000,
  refreshInterval: 100,
  decimals: 0,
  formatter: formatter,
  onUpdate: null,
  onComplete: null
};
function formatter(b, a) {
  return b.toFixed(2)
}
$("#count-number").data("countToOptions", {
  formatter: function(b, a) {
   return b.toFixed(2).replace(/\B(?=(?:\d{3})+(?!\d))/g, ",")
  }
});
$(".timer").each(count);
function count(a) {
  var b = $(this);
  a = $.extend({},
  a || {},
  b.data("countToOptions") || {});
  b.countTo(a)
};

Das Obige ist der gesamte Code, der CSS-Teil wird hier nicht angezeigt, wenn Sie möchten Laden Sie die Demo herunter, klicken Sie unten, um sie herunterzuladen!

Tatsächlich ist dieses Plug-in sehr skalierbar. Was die Anzeige angeht, können Sie sie selbst ändern!

Das obige ist der detaillierte Inhalt vonjs-Implementierung des Beispielcodes für digitale Inkrement-Spezialeffekte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn