我想這是一個很容易解決的問題,對谷歌來說只是有點棘手。我有這個功能,隨機產生一些數字1秒,直到它達到真正的價值(number()
),只是一個華麗的效果。但是,該值是一個7位數字,我想用逗號分隔它。我有兩個功能的工作功能,但我不知道如何讓他們一起工作。我試圖將digits()
函數添加到我的number()
函數中,但是當數字是隨機生成的時候,只有在完成後才能顯示逗號。添加函數在jQuery中運行
這是我的number()
代碼:
(function($){
$.fn.extend({
number: function(options) {
if (! this.length)
return false;
this.defaults = {
endAt: 90,
numClass: 'autogen-num',
interval: 65 // ms
};
var settings = $.extend({}, this.defaults, options);
var $num = $('<span/>', {
'class': settings.numClass
});
return this.each(function() {
var $this = $(this);
// Wrap each number in a tag.
var frag = document.createDocumentFragment(),
numLen = settings.endAt.toString().length;
for (x = 0; x < numLen; x++) {
var rand_num = Math.floor(Math.random() * 10);
frag.appendChild($num.clone().text(rand_num)[0])
}
$this.empty().append(frag);
var get_next_num = function(num) {
++num;
if (num > 9) return 0;
return num;
};
// Iterate each number.
$this.find('.' + settings.numClass).each(function() {
var $num = $(this),
num = parseInt($num.text());
var interval = setInterval(function() {
num = get_next_num(num);
$num.text(num);
}, settings.interval);
setTimeout(function() {
clearInterval(interval);
}, settings.duration * 1000 - settings.interval);
});
setTimeout(function() {
$this.text(settings.endAt.toString());
}, settings.duration * 1000);
});
}
});
})(jQuery);
這是我digits()
代碼:
$.fn.digits = function(){
return this.each(function(){
$(this).text($(this).text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
})
}
在此先感謝!
如何瞭解這兩項設置了[小提琴](http://jsfiddle.net)向我們展示他們應該如何工作。 – adeneo
@ adeneo當然,這是數字動畫:http://jsfiddle.net/Cheezen/3pGpN/26/ – Cheezen