2

我目前正在做一些研究,为小学生创建一个新的数学游戏,其中 0-9 的 div 随机出现在容器内。

开头给出了一个问题。类似于 20 的倍数。然后,用户必须点击正确的,然后在最后计算它们并给出分数。

我刚刚改变了 div 出现的速度,使它们出现的时间更长,一次出现多个,以使年幼的孩子更容易玩游戏。

我像这样使用“fadeIn”..

    $('#' + id).animate({
        top: newY,
        left: newX
    }, 'slow', function() {}).fadeIn(2000);
}

我的问题是,现在当我拍摄正确或错误的数字时,动画非常有问题,我不知道为什么。

小提琴: http: //jsfiddle.net/cFKHq/6/(参见第 5 版以了解之前的情况)

4

1 回答 1

2

在里面startplay(),调用时控制并发scramble(),我用一个名为的全局变量来做window.cont,所以我替换了你的以下调用:

play = setInterval(scramble, 1800);

对于这个:

play = setInterval(function() { 
          if (window.cont){ 
              window.cont = false;
              scramble();
          }
}, 1000);

varwindow.cont需要在代码开始时全局设置,如下所示:

var miss = 0;
var hit = 0;
var target = $("#target");
window.cont = true;

因此,window.cont您现在可以控制动画一个接一个地执行,而不会重叠,如下所示:

$('#'+id).css({
    top: newY,
    left: newX
}).fadeIn(2000, function() {
      setTimeout(function() {
        $('#' + id).slideUp('fast');
        window.cont = true;
      }, 1500);
});

查看工作演示

于 2012-10-23T09:31:12.953 回答