Jquery 在启动后一段时间内禁用该功能,以等待动画完成

Jquery 在启动后一段时间内禁用该功能,以等待动画完成,jquery,timeout,delay,intervals,pause,Jquery,Timeout,Delay,Intervals,Pause,我有一个名为“鼠标滚轮事件”(with mouse wheel event)的函数,可以启动一个动画,如果在动画完成之前多次播放该动画,则可能会被误解。我尝试使用setTimeout或setInterval,但两者都将事件的数量保留在内存中(并且错误地重复我的动画)。 目标是能够立即调用我的函数,并等待2秒左右,然后才能再次触发事件 它将添加到此代码中: var scroll=0; $('body').bind('mouseweell',函数(e){ 如果(滚动0){ log('动画已停止,因为

我有一个名为“鼠标滚轮事件”(with mouse wheel event)的函数,可以启动一个动画,如果在动画完成之前多次播放该动画,则可能会被误解。我尝试使用setTimeout或setInterval,但两者都将事件的数量保留在内存中(并且错误地重复我的动画)。 目标是能够立即调用我的函数,并等待2秒左右,然后才能再次触发事件

它将添加到此代码中:

var scroll=0;
$('body').bind('mouseweell',函数(e){
如果(滚动<8)滚动++;
否则{
滚动=0;
//我的代码。。。
}
});
您可以使用选择器来测试上一个动画是否已经在进行中:

if ($(':animated').length > 0) {
    console.log('animation stopped because already in progress....');
    return;
}
$('body')。在('mousewheel',函数(e)上{
如果($(':animated')。长度>0){
log('动画已停止,因为已在进行…);
返回;
}
如果($('.ecampus').css('display')='block'){
如果(e.originalEvent.wheelDelta<0){
$('.ecampus').fadeOut();
$('.pegasebuzz').fadeIn();
}否则{
//首页
}
返回;
}
如果($('.pegasebuzz').css('display')=='block'){
如果(e.originalEvent.wheelDelta<0){
$('.pegasebuzz').fadeOut();
$('.notrecoin').fadeIn();
}否则{
$('.pegasebuzz').fadeOut();
$('.ecampus').fadeIn();
}
返回;
}
if($('.notrecoin').css('display')='block')){
如果(e.originalEvent.wheelDelta<0){
//底页
}否则{
$('.notrecoin').fadeOut();
$('.pegasebuzz').fadeIn();
}
返回;
}
});
正文{
保证金:0;
}
埃坎普斯先生{
宽度:100%;
身高:100%;
背景:红色;
显示:块;
位置:绝对位置;
}
佩加塞巴兹先生{
宽度:100%;
身高:100%;
背景:蓝色;
显示:无;
位置:绝对位置;
}
诺特瑞金先生{
宽度:100%;
身高:100%;
背景:黄色;
显示:无;
位置:绝对位置;
}

电子校园

(向下滚动) 佩加塞巴兹 诺特尔硬币
非常感谢您的回答。第一个仍然保留我用Tweenmax.js制作的动画。我正在检查另外两个人,并让你知道!我将该行替换为:由
if($(.isActive()).length>0)设置动画{
但不起作用。或者我应该将Tweenmax的行放入文档中的变量中?第二行fadeIn,disapear并制作Tweenmax动画。它可能像我手动设置的函数的计时器吗?我仍然没有任何…:/I我将代码放入a,希望不会混淆。真的感谢您的时间!哇谢谢太多了!很有效!太棒了,再次感谢你的帮助,你让我开心!
if ($(':animated').length > 0) {
    console.log('animation stopped because already in progress....');
    return;
}