$('.dataStatistics').dataStatistics({min: shit, max: count, time: count/10*3000, len: 2});
这个方法不能重复执行,重复执行的话,中途数字会乱掉
把他的插件改了三处地方,可以实现第一处,多了一个属性
options = $.extend({ min: 100,//初始数值 max: 150,//最大数字 time: 60000,//时长 len: 6,//数字是几位数 occurCount:1 //1表示第一次加载,其他数字则表示不是第一次加载 },
第二处,第一次加载的时候才追加数字,不是第一次就不用加载数字:
ths.find('.digit_set').each(function() { for (i = 0; i <= 9; i++) { $(this).append(html); if (options.occurCount == 1) { currentDigit = $(this).find('.digit')[i]; $(currentDigit).find('.digit_wrap').append(i); } } });
第三处,把第一次执行后的其他class都删除: //初始化数值填入
$.each(nowNums, function(index, val) { var set = ths.find('.digit_set').eq(index); var i = parseInt(val); if (options.occurCount != 1) { set.find('.digit').removeClass('active').removeClass('previous'); } set.find('.digit').eq(i).addClass('active'); set.find('.digit').eq(i + 1).addClass('previous'); });
这样即可,不知道还有没有更好的方法
先定义个初始化函数,初始化加载一个数值,
dataStatisticsinit(初始值,几位数)$.fn.dataStatisticsinit = function(options){ options = $.extend({ min : 100, //初始数值 len:6 //数字是几位数 },options || {}); 然后,再改之前的js代码,变成增加多少,然后变化, dataStatistics(add,time,len),即在time内增加了多少值$.fn.dataStatistics = function(options){ options = $.extend({ add : 3,//增长的值 time : 10000, //时长 len:6 //数字是几位数 },options || {});大概方法就是这样,先初始化调用dataStatisticsinit(),然后再调用更新函数dataStatistics(),最后在更新在前台。 function update(){ $.getJSON("number.php", function(data) { $('.dataStatistics').dataStatistics({add:data,len:6}); }) } setInterval(update, 10000);
亲测可行,效果棒棒的