【发布时间】:2015-10-03 13:44:02
【问题描述】:
我一直在尝试让计数器与动画中的航点一起工作。
我在下面使用的 jquery 计数器对仅包含数字(即 8000)的元素具有吸引力。但是,我被要求使用“,”作为分隔符,如 8,000。这会将脚本抛出。我设法使用一个函数(commaSeparateNumber)在计数器运行时向元素打印一个逗号(即 8000 变为 8,000),这很好,除非 javascript 不可用并且回退仍然没有',' .
因此,我需要一些帮助,首先从目标元素中删除逗号,然后运行计数器以及将其放回元素的当前函数。这将涵盖我的任何后备。
任何想法都值得赞赏。代码如下。谢谢!
<script type="text/javascript">
$(document).ready(function () {
$('.Count').each(function () {
$(this).waypoint(function () {
var $this = $(this.element);
jQuery({Counter: 0}).animate({Counter: $this.text()}, {
delay: 5000,
duration: 2000,
easing: 'swing',
step: function () {
$this.text(commaSeparateNumber(Math.ceil(this.Counter)));
}
});
function commaSeparateNumber(val) {
while (/(\d+)(\d{3})/.test(val.toString())) {
val = val.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
};
return val;
}
this.destroy();
}, {
offset: '95%'
});
});
});
</script>
【问题讨论】:
-
将数字存储在数据属性中。将文本和显示数字分开
标签: javascript jquery counter comma jquery-waypoints