Dauer

2016-10-15 6 views
1
zu einer hohen Anzahl zu zählen

Ich versuche, die Dauer meines Zählers zu setzen, langsam zu sein in dem Code eine große Dauer Zahl festgelegt, ohne dass zum Beispiel:Dauer

duration: 99999; 

Ursprünglich hatte ich den Zähler auf eine niedrige Zahl, aber die Anzahl soll 1.000.000,00 erreichen, aber ich möchte kontrollieren können, wie schnell das zählt.

Hier ist, wie ich es derzeit eingerichtet habe.

<div class="counter" data-count="1000000">0</div> 

und meine JS ist wie folgt:

$('.counter').each(function() { 
var $this = $(this), 
    countTo = $this.attr('data-count'); 

$({ countNum: $this.text()}).animate({ 
countNum: countTo 
}, 

{ 

duration: 99999, 
easing:'linear', 
step: function() { 
    $this.text(Math.floor(this.countNum)); 
} 
}); 
}); 

ich dies bin ein Junior so alle anderen Empfehlungen würde geschätzt.

Dank

Antwort

2

Wenn Sie festlegen möchten, wie schnell die Zählung gemacht wird, können Sie versuchen, die Dauer einstellen (die in Millisekunden gemessen wird), um den countTo Wert übereinstimmen. Wenn Sie beispielsweise jede Sekunde ein Inkrement erstellen möchten, tun Sie Folgendes: duration: parseInt(countTo)*1000.

$('.counter').each(function() { 
 
    var $this = $(this), 
 
    countTo = $this.attr('data-count'); 
 

 
    $({ 
 
    countNum: $this.text() 
 
    }).animate({ 
 
    countNum: countTo 
 
    }, { 
 
    duration: parseInt(countTo) * 1000, 
 
    easing: 'linear', 
 
    step: function() { 
 
     $this.text(Math.floor(this.countNum)); 
 
    }, 
 
    complete: function() { 
 
     // Ensure that the final value is updated correctly 
 
     // ... especially when using very short durations 
 
     $this.text(this.countNum); 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="counter" data-count="1000000">0</div>

+0

Excellent! Vielen Dank! :) –

+0

@dcmagpies Nur daran erinnern, dass, obwohl die Dauer auf einen sehr kleinen Wert festgelegt werden kann, das Endergebnis möglicherweise nicht korrekt ist - Sie müssen 'complete: function() {...}' verwenden, um manuell festzulegen Endwert dann. – Terry