25 lines
1.1 KiB
JavaScript
25 lines
1.1 KiB
JavaScript
|
layui.define(function(exports) {
|
||
|
var $ = layui.$;
|
||
|
$.fn.animateNumbers = function(stop, commas, duration, ease) {
|
||
|
return this.each(function() {
|
||
|
var $this = $(this);
|
||
|
var start = parseInt($this.text().replace(/,/g, ""));
|
||
|
commas = (commas === undefined) ? true : commas;
|
||
|
$({value: start}).animate({value: stop}, {
|
||
|
duration: duration == undefined ? 1000 : duration,
|
||
|
easing: ease == undefined ? "swing" : ease,
|
||
|
step: function() {
|
||
|
$this.text(Math.floor(this.value));
|
||
|
if (commas) { $this.text($this.text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")); }
|
||
|
},
|
||
|
complete: function() {
|
||
|
if (parseInt($this.text()) !== stop) {
|
||
|
$this.text(stop);
|
||
|
if (commas) { $this.text($this.text().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")); }
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
};
|
||
|
exports('animate-numbers', null);
|
||
|
});
|