0

我在网上放了一个简单的例子:

http://philiphannaart.nl/helpme/

当用户单击三个链接之一时,动画将开始。如果用户等待下一次点击直到动画完成,它就会起作用。但是,如果他在每个链接上快速单击它就会变得混乱和混乱。任何建议如何解决这个问题或在哪里寻找解决方案?

非常感激!

4

2 回答 2

0

只需在每个 .animate() 、 .fadeIn() 、 .fadeOut() 之前写 .stop()

于 2012-10-29T10:50:36.547 回答
-1

您没有提供用于它的代码。

但正如我假设的那样,当您单击按钮时,您必须使用.stop()在代码中播放动画。

我做了一些事情:

var anigone = function() {
    $("#oneb").stop().fadeOut(1000);
    $("#twob").stop().fadeOut(1000);
    $("#threeb").stop().fadeOut(1000);
    $("#one").stop().fadeIn(0);
    $("#two").stop().fadeIn(0);
    $("#three").stop().fadeIn(0);    
}

var red = function() {

    anigone();

    var red2 = $('#one');
    red2.stop().delay(1000).animate({
        left: 330 
    }, 1000, function() {
     red2.stop().fadeOut(1000);
     $("#oneb").stop().fadeIn(1000);
    });
    $("#two").stop().delay(1000).animate({
    left:480  }, 1000);
    $("#three").stop().delay(1000).animate({
    left:630  }, 1000); 
    $("#four").stop().delay(1000).animate({
    left:790  }, 1000);
}

var green = function() {

    anigone();

    $("#one").stop().delay(1000).animate({
    left:180 }, 1000);
    var green2 = $('#two');
    green2.stop().delay(1000).animate({
        left: 330 
    }, 1000, function() {
     green2.stop().fadeOut(1000);
     $("#twob").stop().fadeIn(1000);
    });
    $("#three").stop().delay(1000).animate({
    left:480  }, 1000); 
    $("#four").stop().delay(1000).animate({
    left:630 }, 1000);
}

var blue = function() {

    anigone();

    $("#one").stop().delay(1000).animate({
    left:30 }, 1000);
    $("#two").stop().delay(1000).animate({
    left:180 }, 1000);
    var blue2 = $('#three');
    blue2.stop().delay(1000).animate({
        left: 330 
    }, 1000, function() {
     blue2.stop().fadeOut(1000);
     $("#threeb").stop().fadeIn(1000);
    });
    $("#four").stop().delay(1000).animate({
    left:480 }, 1000);
}

$("#red").live('click', function() {
red();
});
$("#green").live('click', function() {
green();
});
$("#blue").live('click', function() {
blue();
});

​</p>

于 2012-10-29T10:48:07.827 回答