43 lines
1.0 KiB
JavaScript
43 lines
1.0 KiB
JavaScript
layui.define(['jquery', 'element'], function(exports) {
|
||
"use strict";
|
||
|
||
var MOD_NAME = 'count',
|
||
$ = layui.jquery,
|
||
element = layui.element;
|
||
|
||
var count = new function() {
|
||
|
||
this.up = function(targetEle, options) {
|
||
|
||
options = options || {};
|
||
|
||
var $this = document.getElementById(targetEle),
|
||
time = options.time, //总时间--毫秒为单位
|
||
finalNum = options.num, //要显示的真实数值
|
||
regulator = options.regulator, //调速器,改变regulator的数值可以调节数字改变的速度
|
||
step = finalNum / (time / regulator),
|
||
count = 0.00,
|
||
initial = 0;
|
||
|
||
|
||
var timer = setInterval(function() {
|
||
count = count + step;
|
||
|
||
if (count >= finalNum) {
|
||
clearInterval(timer);
|
||
count = finalNum;
|
||
}
|
||
//t未发生改变的话就直接返回
|
||
//避免调用text函数,提高DOM性能
|
||
var t = count.toFixed(options.bit?options.bit:0);;
|
||
|
||
if (t == initial) return;
|
||
initial = t;
|
||
$this.innerHTML = initial;
|
||
}, 30);
|
||
}
|
||
|
||
}
|
||
exports(MOD_NAME, count);
|
||
});
|