Javascript jQuery计数器在滚动时冻结

Javascript jQuery计数器在滚动时冻结,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我尝试使用scroll函数激活jQuery计数函数,将其滚动到特定的div ID,我成功了,但在屏幕上的数字完全更新之前,一旦我继续滚动,我就会面临问题 每次我滚动到定义的div ID时,滚动功能启动,但如果我再次滚动,它将冻结数字并在我停止滚动时继续计数 如何滚动到某个div并激活计数器功能,而不使其在进一步滚动时停止 //计数器 $(窗口)。滚动(函数(){ var a=0; var oTop=$('#stats').offset().top-window.innerHeight; if(

我尝试使用scroll函数激活jQuery计数函数,将其滚动到特定的div ID,我成功了,但在屏幕上的数字完全更新之前,一旦我继续滚动,我就会面临问题

每次我滚动到定义的div ID时,滚动功能启动,但如果我再次滚动,它将冻结数字并在我停止滚动时继续计数

如何滚动到某个div并激活计数器功能,而不使其在进一步滚动时停止

//计数器
$(窗口)。滚动(函数(){
var a=0;
var oTop=$('#stats').offset().top-window.innerHeight;
if(a==0&&$(window.scrollTop()>oTop){
$('.number')。每个(函数(){
变量$this=$(this),
countTo=$this.attr('data-count');
$({
countNum:$this.text()
}).制作动画({
countNum:countTo
},
{
期限:2000年,
放松:"摇摆",,
步骤:函数(){
$this.text(Math.floor(this.countNum));
},
完成:函数(){
$this.text(this.countNum);
}
});
});
a=1;
}
});
#统计数据{
背景:#222629;
宽度:100%;
高度:自动;
}
#统计空间{
填充:10px;
高度:自动;
}
.章节标题{
利润率:30像素0像素;
文本对齐:居中;
最小高度:20px;
}
.章节标题h2{
方向:rtl;
字体大小:30px;
颜色:#222;
边缘底部:0px;
右边填充:10px;
左侧填充:10px;
}
.头线{
宽度:160px;
高度:2倍;
显示:内联块;
背景:#101F2E;
}
//柜台
.持有人{
宽度:50%!重要;
}
.柜台{
显示器:flex;
利润率最高:3%;
弯曲方向:行;
证明内容:中心;
柔性包装:包装;
}
.柜台.第1项{
垂直对齐:中间对齐;
宽度:16.66%;
身高:100%;
文本对齐:居中;
填充:0;
利润率:20px0;
}
.柜台.第一项{
颜色:#fff;
字号:4em;
文本阴影:1px 1px 1px#ccc;
}
.柜台.项目1 p.编号{
颜色:#fff;
字号:3em;
文本阴影:1px 1px 1px#ccc;
}
.计数器.项目1 p.标签{
颜色:#fff;
字体大小:1.1米;
文本阴影:1px 1px 1px#ccc;
文本转换:小写;
}
.计数器.第1项:悬停i,
.计数器。项目1:悬停p{
颜色:#cecece;
}
@介质(最大宽度:786px){
.柜台.第1项{
弹性:0.50%;
}
}



















פרוייקטים וסטטיסטיקות

0

0

0

0


如@Atul所述,使var a=0一个全局变量,用于修复问题。最好把它变成一个傻瓜

<script>
  //Counter
  var a = 0;
  $(window).scroll(function () {

//柜台
var a=0;
$(窗口)。滚动(函数(){

正如@Atul所提到的,将
var a=0;
作为一个全局变量,解决了这个问题。最好将其设置为bool

<script>
  //Counter
  var a = 0;
  $(window).scroll(function () {

//柜台
var a=0;
$(窗口)。滚动(函数(){

@Vibgy不是当你滚动时,当你看到数字时,你可以看到它被卡住了一点。我使用的是chrome浏览器,这可能会让你看到不同的东西。@YotamDahan请忽略我下面的回答,我将持续时间更改为20000,现在我可以重现这个问题。@Atul建议的YotamDahan,使标志
var a=0;
成为一个全局变量可以解决这个问题。我已经相应地编辑了我的答案。@Vibgy不是当你滚动时,当你看到数字时,你可以看到它卡住了一点。我使用的是chrome浏览器,这可能会使你看到不同的东西。@YotamDahan请忽略我下面的答案,我查将持续时间设置为20000,现在我能够重现该问题。@Atul建议的YotamDahan,使标志
var a=0;
一个全局变量修复该问题。我已相应地编辑了我的答案。