jQuery动画十进制数递增/递减

Posted

技术标签:

【中文标题】jQuery动画十进制数递增/递减【英文标题】:jQuery animate decimal number increment/decrement 【发布时间】:2013-05-10 13:33:02 【问题描述】:

我想逐步动画化两个十进制数之间的差异。

找到了Joss Crowcroft's solution 的整数,我已经找到了example on jsfiddle。 代码sn-p:

$(numberValue: 35).animate(numberValue: 100, 
    duration: 1000,
    easing: 'linear',
    step: function()  
        $('#dynamic-number').text(Math.ceil(this.numberValue)); 
    
);

但是,如果我想为数字 2.85 到 3.25 设置动画,则无法以这种方式完成。必须有动画两个部分,整数和小数。除了整数和小数的分开动画之外,它可以用更简单的方式制作吗?

【问题讨论】:

【参考方案1】:

你的意思是这样的?

var currentNumber = $('#dynamic-number').text();

$(numberValue: currentNumber).animate(numberValue: 100, 
    duration: 8000,
    easing: 'linear',
    step: function()  
        $('#dynamic-number').text(Math.ceil(this.numberValue*100)/100); 
    
);

【讨论】:

【参考方案2】:

试试这个

var currentNumber = $('#dynamic-number').text();

$(numberValue: currentNumber).animate(numberValue: 100, 
duration: 8000,
easing: 'linear',
step: function (now) 
        $('#dynamic-number').text(now.toFixed(2)); 

);

这里是the Fiddle

【讨论】:

【参考方案3】:
 <span id="counter">30</span>
 <span id="counter">25</span>

$("div#counter").each(function( index,element ) 
        var currentNumber = $(element).text();
        $(numberValue: 0).animate(numberValue: currentNumber, 
            duration: 1200,
            easing: 'linear',
            step: function (now) 
                $(element).text(now.toFixed(0));
            
        );
    );

【讨论】:

【参考方案4】:

抱歉英语不好,我阅读了所有答案并尝试使用更大的十进制数字,但它无法正常工作。为什么它没有以应该是确切的结束编号结束。

                    $( Counter: 1.0000138138).animate(
                  Counter: 1.0000167238
                , 
                  duration: 1000,
                  easing: 'linear',
                  step: function() 

                    $('#dynamic-number').html(parseFloat(this.Counter).toFixed(10));
                  
                );

见小提琴:http://jsfiddle.net/98qncoLr/1/ 只是想知道为什么这会因更大的十进制数字而失败..

【讨论】:

以上是关于jQuery动画十进制数递增/递减的主要内容,如果未能解决你的问题,请参考以下文章

递增和递减运算符

非零和非十进制数的 JQuery 正则表达式验证

使用 jquery 和 regex 格式化正负十进制数

进制数转换方法(八/十六/十)

关于有符号整数的补码编码的一点经验

jQuery 如何获取十六进制的color值