Javascript 带千位分隔符的JS计数编号
这是我计算最终数字的脚本(见html)。 我想做的是添加一个千位分隔符。因为它是我的代码将计数的数字从0到例如100000,但它会显示:“100000”这看起来不好 PS:我尝试过toLocalString(),但它在我的代码中不起作用,或者我没有正确地使用它。问题是,在设置计数动画时,它不会显示千位分隔符 JSJavascript 带千位分隔符的JS计数编号,javascript,jquery,html,count,Javascript,Jquery,Html,Count,这是我计算最终数字的脚本(见html)。 我想做的是添加一个千位分隔符。因为它是我的代码将计数的数字从0到例如100000,但它会显示:“100000”这看起来不好 PS:我尝试过toLocalString(),但它在我的代码中不起作用,或者我没有正确地使用它。问题是,在设置计数动画时,它不会显示千位分隔符 JS <script> var a = 0; $(window).scroll(function() {
<script>
var a = 0;
$(window).scroll(function() {
var oTop = $('#counter').offset().top - window.innerHeight;
if (a == 0 && $(window).scrollTop() > oTop) {
$('.counter-value').each(function() {
var $this = $(this),
countTo = $this.attr('data-count');
$({
countNum: $this.text()
}).animate({
countNum: countTo
},
{
duration: 5000,
easing: 'swing',
step: function() {
$this.text(Math.floor(this.countNum));
},
complete: function() {
$this.text(this.countNum);
//alert('finished');
}
});
});
a = 1;
}
});
</script>
var a=0;
$(窗口)。滚动(函数(){
var oTop=$('#counter').offset().top-window.innerHeight;
if(a==0&&$(window.scrollTop()>oTop){
$('.counter value')。每个(函数(){
变量$this=$(this),
countTo=$this.attr('data-count');
$({
countNum:$this.text()
}).制作动画({
countNum:countTo
},
{
持续时间:5000,
放松:"摇摆",,
步骤:函数(){
$this.text(Math.floor(this.countNum));
},
完成:函数(){
$this.text(this.countNum);
//警报(“完成”);
}
});
});
a=1;
}
});
HTML
<div class="counter-value" data-count="100000">0</div>
0
有时候答案就在眼前
step: function() {
$this.text(Math.floor(this.countNum).toLocaleString());
},
complete: function() {
$this.text(Number(this.countNum).toLocaleString());;
//alert('finished');
我需要把所有的功劳都归功于@PatrickEvans。多谢各位 不要使用div,而是使用适合您的元素: 标记目的
存储当前偏移值:0到100000 显示格式化为的
的值
当用户滚动时,侦听和一个合成输入事件
演示中评论的详细信息
演示
*{
保证金:0;
填充:0
}
html,
身体{
溢出x:隐藏;
字体:600 16px/1.5控制台;
宽度:100%;
身高:100%;
显示:表格;
保证金:0自动;
}
#倒计时{
位置:相对位置;
宽度:96vw;
高度:12600ch;
溢出x:隐藏;
溢出y:滚动;
边际上限:50vh;
z指数:-1;
}
/*输入被隐藏,因为它无法保留数字文本
如果是type='range',则使用逗号。我不想把它当作一个
type='text',因为它需要更多的验证工作*/
#柜台{
显示:无
}
#设置{
位置:固定;
宽度:15%;
高度:96vh;
z指数:1;
顶部:2vh;
文本对齐:居中;
}
#反视图{
显示:块;
保证金顶部:计算(50vh-8px);
}
100,000
var a=0;
$(文档)。滚动(函数(){
/*标签#0。标记是视口顶部的固定位置
||形式#倒计时为12596ch high=window.innerHeight
*/
var oTop=$('#set').offset().top+window.innerHeight;
//随着视口顶部之间的距离减小。。。
如果($(窗口).scrollTop()<(oTop)){
//表单触发一个输入事件
$('#倒计时')。触发器('输入');
//输入记录距离
$(#counter').val(100315-数学圆整(oTop));
}
});
//表单已绑定到输入事件
$('#倒计时')。关于('输入',函数(e){
//创建一个特殊的内置对象
变量逗号=新的国际编号格式(“us-us”);
//获取输入值并将其转换为数字
var c=数字($('#计数器').val();
//输出值=输入值
var cV=数字($('#counterView').val());
//在输出中显示格式化的值
$('#counterView').val(逗号格式(c));
});
您是如何使用toLocaleString()的<代码>$this.text(数字(this.countNum.toLocaleString())代码>?如果您尝试使用this.countNum.tolocalstring()
将不起作用,因为countNum
是一个字符串,string\tolocalstring()
的作用与Number\tolocalstring()
看看这里:@PatrickEvans Yes。最后的数字将用分隔符显示,但不是在动画制作时显示,这是我的目标。你在步骤回调中也这样做了吗?你是对的!!!