1

背景をフェードインおよびフェードアウトしています:

// in:
$bg.css({'pointerEvents':'auto'}).show()
    .stop(true).animate({ 'opacity': 0.90 }, animTime);

// out:
$bg.css({'pointerEvents':'none'}).stop(true)
    .animate({ 'opacity': 0 }, animTime,function () { $bg.hide(); });

フェードアウトが完了する前にフェードインを開始すると問題が発生します。完全なイベントは、フェードイン アニメーションの途中で発生し、背景を非表示にします。

完全なイベントをクリアしていないと思い.stop(true)ます-それを行う方法はありますか?

4

2 に答える 2

1

回避策が見つかりました:

$bg.data('fading',true).css({'pointerEvents':'auto'}).stop(true).show().transition({ 'opacity': 0.90 }, animTime, function () { $bg.data('fading', false); });

$bg.css({'pointerEvents':'none'}).stop(true).transition({ 'opacity': 0 }, animTime,function () {
    if(!$bg.data('fading')) {
        $bg.hide();
    }
});
于 2012-09-08T18:05:24.150 に答える
1

試してみてください.stop(true,true)。これにより、現在のイベントが停止し、キューに入れられたイベントが削除されます。

.stop( [clearQueue] [, jumpToEnd] )
clearQueueAキューに入れられたアニメーションも削除するかどうかを示すブール値。デフォルトはfalseです。
jumpToEndA現在のアニメーションをすぐに完了するかどうかを示すブール値。デフォルトはfalseです。

于 2012-09-08T17:59:10.023 に答える