我制作了这个我认为很酷的计数器,因为它只会对每次触发之间更改的数字进行可见的更改。
这是代码
// counter
$('a').click(function(){
var u = '';
var newStr = '';
$('.counter').each(function(){
var len = $(this).children('span').length;
$(this).children('span').each(function(){
u = u + $(this).text();
});
v = parseInt(u) + 1;
v = v + '';
for (i=v.length - 1; i >= 0; i--) {
if (v.charAt(i) == u.charAt(i)) {
break;
}
}
slce = len - (v.length - (i + 1))
updates = $(this).children('span').slice(slce);
$(updates).fadeTo(100,0).delay(100).each(function(index){
f = i + 1 + index;
$(this).text(v.charAt(f));
}).fadeTo(100,1);
});
});
标记:
<span class="counter">
<span></span><span></span><span></span><span></span><span></span><span></span><span style="margin-right:4px;">9</span><span>9</span><span>9</span><span>9</span>
</span>
<a href="">Add + 1</a>
问题是我之前使用 queue() 函数来延迟() $(this).text(v.charAt(f)); 100 毫秒,(没有队列 text() 函数不会因为它不在 fx 类别中而延迟),以便在对象褪色到不透明度 = 0 之前更新文本。这看起来很愚蠢。
添加多个计数器时,只有一个计数器会计数。删除队列功能时,两个计数器都可以工作,但正如您可以想象的那样, text() 的延迟将消失(因为它不是 fx 类别)。
弄清楚我如何拥有多个计数器,并且仍然将 text() 函数延迟 100 毫秒可能有点棘手,但我希望这里有人有足够的脑容量来处理这些事情;)
您可以在此处查看 (NSFW)问题演示:
只需查看共享图标下方,您就会注意到文本在对象淡出时发生变化。
寻找一些帮助来解决这个问题。我想在文本褪色到不透明度 0 后调用 text() 函数,然后在 text() 执行后淡入。
感谢您的时间。