文章根据此链接删除部分
原文章连接:http://www.jq22.com/jquery-info3484
// 需要翻转数字转为Number 直接调用 只需要引用 Jquery
例:
<p class="color_org" ref="kfDate1">{{((customerNum?customerNum:0)-0).countTo(this.$refs.kfDate1)}}</p>
// html ==》转入的p标签
Number.prototype.countTo = function (html) {
// this指新数字
if (this) {
var settings =
{
from: 0,// 从0开始(或者获取旧的数开始)
to: this,// 新传入的数
speed: 1500,//总秒数
refreshInterval: 100,//每个数据
};
var loops = Math.ceil(settings.speed / settings.refreshInterval),
increment = (settings.to - settings.from) / loops,
valueS=settings.to.toString(),// 转为类型
indexOfL=valueS.toString().indexOf('.')==-1?0:valueS.toString().length-(valueS.toString().indexOf('.')+1);// 适配小数点
;//每个数字变化的速度
var $self = $(html),// 标签
loopCount = 0,
value = settings.from,
data = $self.data("countTo") || {};
$self.data("countTo", data);
if (data.interval) {// 当前是否定时器
clearInterval(data.interval);// 关闭定时器
}
// 添加定时器
data.interval = setInterval(updateTimer, settings.refreshInterval);
render(value);
function updateTimer() {
value += increment;
loopCount++;
render(value);
if (loopCount >= loops) {
$self.removeData("countTo");
clearInterval(data.interval);
value = settings.to;
}
}
function render(value) {
// 适配小数点
var formattedValue = (value - 0).toFixed(indexOfL);
$self.html(formattedValue);
}
}
}