sha*_*shi 5 jquery jquery-plugins
我正在对服务器进行ajax调用,然后更新一些统计信息.我想要一个能够激活数字的插件.
例如,ajax call = 98之后的初始值= 65值
在2秒的时间内,显示的值从65增加到98,用户可以看到 - 如数字速度表或转速计.
我的搜索没有让我找到一个插件.有人知道这样的插件吗?
Luk*_*nis 10
这是一个使用jQuery的animate()的潜在解决方案,作为一个函数实现."duration"和"easing"参数是可选的.
function animateNumber($input, num, duration, easing)
{
$input
.data("start", parseInt($input.val()))
.animate({"val":parseInt(num)},
{
easing: easing == undefined ? "linear" : easing,
duration: duration == undefined ? 500 : parseInt(duration),
step: function(fin,obj)
{
var $this = jQuery(this);
var start = parseInt($this.data("start"));
$this.val(parseInt((fin-start)*obj.state) + start );
}
});
}
// Usage
animateNumber($("#my_input_box"), 23);
animateNumber($("#my_input_box"), 23, 1500, "swing"); // 1.5 sec, swing easing
Run Code Online (Sandbox Code Playgroud)
它没有持续时间,但有点接近。我现在不知道如何整合持续时间,并且不得不很快地将其整合在一起。
(function($) {
$.fn.animateNumber = function(to) {
var $ele = $(this),
num = parseInt($ele.html()),
up = to > num,
num_interval = Math.abs(num - to) / 90;
var loop = function() {
num = Math.floor(up ? num+num_interval: num-num_interval);
if ( (up && num > to) || (!up && num < to) ) {
num = to;
clearInterval(animation)
}
$ele.html(num);
}
var animation = setInterval(loop, 5);
}
})(jQuery)
var $counter = $("#counter");
$counter.animateNumber(800);Run Code Online (Sandbox Code Playgroud)
<span id="counter">100</span>
Run Code Online (Sandbox Code Playgroud)