我没有任何擅长的JavaScript,但我很想有一个可爱的小动画向上计数的数字。 我发现这个在Github上,但它的方式放缓。 (我数了10位小数的数字)。 任何人有关于如何修改它的任何提示,所以它计算更快? (我试图降低数据间隔,但它在“0”之类的停滞。
<p class="counter" data-interval="0" data-format="999999" data-stop="193847"></p>
我没有任何擅长的JavaScript,但我很想有一个可爱的小动画向上计数的数字。 我发现这个在Github上,但它的方式放缓。 (我数了10位小数的数字)。 任何人有关于如何修改它的任何提示,所以它计算更快? (我试图降低数据间隔,但它在“0”之类的停滞。
<p class="counter" data-interval="0" data-format="999999" data-stop="193847"></p>
我找到了完美的解决方案:
https://github.com/mhuggins/jquery-countTo
比方说,你想在5秒内数达到20万。
这将是40000个增量60,000毫秒的第二或40,000,这将是的每次迭代1.5毫秒的间隔。
最有可能你正在使用不会任何浏览器能够处理那种区间。 最好的方式做,这可能会决定你想多快就数到您的最终价值,改变步骤,你可以给出一个更健全的间隔时间正确的量到达那里。
例如,假设5000毫秒就是你要多长时间把和你希望你的时间间隔为20毫秒。
因为你有二十零分之五千或250步。 你将不得不通过二百五分之二十○万或800来算让你终止值在5秒内。
这将帮助你和过于简单,你可以通过改变时间改变速度 , 改变通过改变计数器 起始编号 :0
$('.count').each(function () { var $this = $(this); jQuery({ Counter: 0 }).animate({ Counter: $this.attr('data-stop') }, { duration: 1000, easing: 'swing', step: function (now) { $this.text(Math.ceil(now)); } }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <span class="count" data-stop="193847">193847</span> <br/> <span class="count" data-stop="190">190</span> <br/> <span class="count" data-stop="1938">1938</span>
你并不需要一个jQuery插件,只需使用.animate:
jQuery('.counter').each(function(){
var $elm = this;
var from = {property: 0};
var to = {property: $elm.data('stop')};
var duration = $elm.data('duration');
jQuery(from).animate(to, {
duration: duration,
step: function() {
$elm.html(this.property);
}
});
});
提示:您可以通过设置jQuery.fx.interval优化jQuery的帧率,默认为13(毫秒)。
更多的例子: http://james.padolsey.com/javascript/fun-with-jquerys-animate/
从您发布的插件,似乎有一个名为间隔的选项。 默认值是1000毫秒,所以尝试它计算速度更快减少它。
类似的东西应该做的伎俩:
<span></span>
<script>
$('span').addClass('counter counter-analog')
.counter({
// several options here
interval: 1,
});
</script>
希望能帮助到你!
如果有人想增加一定的增量计数器再使用,
// HTML
<span class="stat-count">10000</span>
// JS
$(function() {
function count($this){
var current = parseInt($this.html(), 10);
current = current + 50; /* Where 50 is increment */
$this.html(++current);
if(current > $this.data('count')){
$this.html($this.data('count'));
} else {
setTimeout(function(){count($this)}, 5);
}
}
$(".stat-count").each(function() {
$(this).data('count', parseInt($(this).html(), 10));
$(this).html('0');
count($(this));
});
});
jQuery的指望页面加载数字与某些限制,计时,计数增量。