0

私はこのアニメーションを持っています http://codepen.io/DWboutin/pen/DFJze

これらのタブをすばやく移動すると、アニメーションが非常に奇妙なものになります。

どうすればそれを止めることができますか? 私は .stop(true,true) を試しました。キューを作成しようとしましたが、これをよりきれいにすることができます。

この関数は、マウス入力時にトリガーされます

var becomeBigger = function(element){
    deplace(element.index(),function(){
        element.dequeue();
        element.queue(function(){
            $(this).animate({top: '118px', height: '435px',width: '248px'},settings.timeAnimIn,settings.easingIn,function(){
                $(this).addClass('active');
                deplace(element.index());
            });
            $(this).children('.img').children('.noiretblanc').animate({'opacity':0},settings.timeAnimIn,settings.easingIn);
            $(this).children('.img').children('.couleur').animate({opacity: 1, top: '-321px'},settings.timeAnimIn,settings.easingIn);
            $(this).children('.img').animate({height: '321px'},settings.timeAnimIn,settings.easingIn);
            $(this).children('.titre').animate({height: '57px', width: '228px', backgroundColor: '#4696a7'},settings.timeAnimIn,settings.easingIn);
            $(this).children('.titre').children('h2').animate({fontSize : '22px'},settings.timeAnimIn,settings.easingIn);
            $(this).children('.titre').children('h3').animate({fontSize : '18px'},settings.timeAnimIn,settings.easingIn);
            $(this).children('.btn-verso').css({backgroundPosition : '0 0'});
            $(this).dequeue();
        });
    });

}

そして、これはマウスリーブにあります

var recoverSize = function(element){
    replace(element.index(),function(){
        element.queue(function(){
            $(this).removeClass('active');
            $(this).animate({top: '148px',height: '385px',width: '214px'},settings.timeAnimOut,settings.easingOut);
            $(this).children('.img').children('.noiretblanc').animate({'opacity':1},settings.timeAnimOut,settings.easingOut);
            $(this).children('.img').children('.couleur').animate({opacity: 0, top: '-277px'},settings.timeAnimOut,settings.easingOut);
            $(this).children('.img').animate({height: '277px'},settings.timeAnimOut,settings.easingOut);
            $(this).children('.titre').animate({height: '50px', width: '194px', backgroundColor: '#959595'},settings.timeAnimOut,settings.easingOut);
            $(this).children('.titre').children('h2').animate({fontSize : '20px'},settings.timeAnimOut,settings.easingOut);
            $(this).children('.titre').children('h3').animate({fontSize : '16px'},settings.timeAnimOut,settings.easingOut);
            $(this).children('.btn-verso').css({backgroundPosition : '0 -72px'});
            $(this).dequeue();
        });
    });

}

ご協力ありがとうございました

4

2 に答える 2

1

現在のアニメーションを開始する前に、すべてのアニメーションを停止する必要があります。これは jQuery で簡単に実行できます。

止まる()

于 2013-01-15T13:48:37.207 に答える
1

あなたが使用することができます

.stop(false, true).animate(...);

または clearQueue() を使用したもの

http://api.jquery.com/clearQueue/

于 2013-01-15T13:57:43.277 に答える