用于更新的Jquery编号计数器
Jquery number counter for updates
我有这个jquery函数。我想让它只是一个函数,这样我就可以通过调用一个函数并传递一些争论来获得相同的结果。
正如你所看到的,这个函数对数字的计数基本上是一样的。我希望只有一个函数,然后解析出参数以获得相同的结果。类似于startcount(arg1,arg2);
var one_countsArray = [2,4,6,7,4252];
var two_countsArray = [3,3,4,7,1229];
var sumemp = one_countsArray.reduce(add, 0);
var sumallis = two_countsArray.reduce(add, 0);
function add(a, b) {
return a + b;
}
var count = 0;
var inTv = setInterval(function(){startCount()},100);
var inTv2 = setInterval(function(){startCount2()},100);
function startCount()
{
if(count == sumemp) {
clearInterval(inTv);
} else {
count++;
}
$('.stats_em').text(count);
}
var count2 = 10;
function startCount2()
{
if(count2 == sumallis) {
clearInterval(inTv2);
} else {
count2++;
}
$('.stats_iss').text(count2);
}
div {
padding:50px 0;
background: #000000;
color: #ffffff;
width: 100px;
height:100px;
border-radius:50%;
text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div class="stats_em"></div>
<div class="stats_iss"></div>
一个非常简单的jquery插件怎么样
$.fn.countTo = function(arrNums){
var self = this;
function add(a,b){
return a+b;
}
var current = 0;
var max = arrNums.reduce(add,0);
var int = setInterval(function(){
if(current == max)
clearInterval(int);
else
current++;
self.text(current);
},100);
return this;
}
$('.stats_em').countTo([2,4,6,7,4252]);
$('.stats_iss').countTo([3,3,4,7,1229]);
div {
padding:50px 0;
background: #000000;
color: #ffffff;
width: 100px;
height:100px;
border-radius:50%;
text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div class="stats_em"></div>
<div class="stats_iss"></div>
当您注意到您正在重写类似代码块时,转移到一个泛型函数是正确的方法!最好的开始方式是尝试确定你的参数:
count
和count2
显示计时器需要启动计数才能在sumemp
和sumpallis
显示您需要能够指定最大计数inTv
和inTv
显示您需要能够设置间隔$('.stats_iss')
和$('.stats_em')
表明您需要能够确定输出元素
这意味着您的最终类、函数或jquery扩展将至少具有类似于以下的签名:
function(startCount, maximumCount, interval, outputElement) { }
一旦你写了这篇文章,你就可以粘贴你已经拥有的代码。(我把你的setInterval
换成了setTimeout
,除此之外,变化不大)
var createCounter = function(start, max, interval, outputElement) {
var count = start;
var timeout;
var start = function() {
count += 1;
outputElement.text(count);
if (count < max) {
timeout = setTimeout(start, interval);
}
}
var stop = clearTimeout(timeout);
return {
start: start,
stop: stop
}
}
var one_countsArray = [2, 4, 6, 7, 300];
var two_countsArray = [3, 3, 4, 7, 100];
var sumemp = one_countsArray.reduce(add, 0);
var sumallis = two_countsArray.reduce(add, 0);
function add(a, b) {
return a + b;
}
var counters = [
createCounter(0, sumemp, 100, $('.stats_em')),
createCounter(10, sumallis, 100, $('.stats_iss'))
];
counters.forEach(function(counter) {
counter.start();
});
div {
padding: 50px 0;
background: #000000;
color: #ffffff;
width: 100px;
height: 100px;
border-radius: 50%;
text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div class="stats_em"></div>
<div class="stats_iss"></div>
相关文章:
- JQuery使计数器每次更改时都会增加
- Javascript计数器变量未显示正确的值
- 在jquery中生成一个自动前缀编号
- Jquery 读取编号组中选择下拉列表的数组
- 带有计数器、缩略图、进度条和淡入淡出效果的简单jQuery幻灯片
- JQuery幻灯片,可点击编号位置
- 如何在for循环中使用计数器
- AngularJS:调用函数时编号不更新
- 正确使用AES-CTR模式的随机数和计数器
- Javascript猜测游戏-计数器不工作
- javascript验证编号未检测到空表单字段
- Javascript第二计数器
- 将字符串转换为数组编号Javascript
- 如何强制绘图将x轴编号显示为类别
- Jquery:直到寄存器打开的时间计数器
- 如何使用JavaScript创建时间计数器
- 带有连字符的 Jquery 表排序器编号
- Javascript计数器问题
- 按钮点击计数器保存编号
- 用于更新的Jquery编号计数器