效果图
这个插件完全没有样式!
接下来讲怎么调用
HTML
需要在显示数字的元素上加上
data-tg-num
值为最终显示的数字
然后初始值设置为0就行
这个动画是从当前值慢慢累加到最终值
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<title>tgAnimationLabel</title>
</head>
<body>
<button>Play</button>
<p>
<span data-tg-num="1890">0</span>
</p>
<script src="jquery.min.js"></script>
<script src="tgAnimationLabel.js"></script>
<script>
$(document).ready(function () {
$("button").click(function () {
$("span").tgAnimationLabel().play();
});
});
</script>
</body>
</html>
js
tgAnimationLabel.js
+function ($, window, document, undefined) {
var plugin = function (ele, opt) {
this.$element = $(ele),
this.defaults = {
delay: 1000,
fps: 50,
range: .057,
},
this.options = $.extend({}, this.defaults, opt);
}
function update(ele, opt, numResult, tid) {
// 获取当前数字
var numCur = parseInt(ele.html());
// 计算出下一次要显示的数字
var numNext = numCur + parseInt(numResult * opt.range);
if (numNext >= numResult) {
numNext = numResult;
window.clearInterval(tid);
}
ele.html(numNext);
}
plugin.prototype = {
play: function () {
var me = this;
setTimeout(function () {
var t = window.setInterval(function () {
update(me.$element, me.options, me.$element.data("tg-num"), t);
}, me.options.fps);
}, me.options.delay);
},
}
$.fn.tgAnimationLabel = function (options) {
var p = new plugin(this, options);
return p;
}
}(jQuery, window, document);
参数说明
delay
表示何时开始滚动,单位为毫秒
,默认值1000
fps
表示滚动频率(并不是真正意义上的fps),单位为毫秒
,默认值50
range
表示增幅比例,一个小数,默认值.057
(js里小数都可以省去小数点前面的0)
说明
就先这么记着吧。