これは簡単に解決できる問題だと思います。グーグルには少し注意が必要です。私はこの関数を持っており、実際の値()に達するまで1秒間ランダムにいくつかの数値を生成しますが、これnumber()
は派手な効果です。ただし、値は7桁の数値であり、カンマで区切りたいと思います。私は両方の機能のために機能する機能を持っていますが、それらを一緒に機能させる方法がわかりません。digits()
関数を関数に追加しようとしましたnumber()
が、数値がランダムに生成されている間は、完了した場合にのみコンマを表示できません。
これは私の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,") );
})
}
前もって感謝します!