1

jQuery を使用してスクロール トゥ エフェクトをアニメーション化しています。アニメーションが終了した後、エフェクトをトリガーします。何らかの理由でエフェクトが 2 回トリガーされます。どうすればそれを防ぐことができますか?

$('.something').on('click', function() {
            $('html, body').animate({
                scrollTop: $('footer').offset().top
            }, {
                queue: false,
                duration: 1500,
                complete: function() {
                    $('.foo').toggleClass('active');
                    $('.bar').slideToggle();    
                }
            });                
            return false;
        });

slideToggle 効果が 2 回トリガーされているようです。「ボディ」からのアニメーションはIE8では機能しないため、htmlとボディでアニメーション化します。

4

1 に答える 1

4

2 つのアニメーション (html と本文) をトリガーしているため、完全なコールバックを 2 回呼び出す必要があります。

必要な場合にのみ、html でアニメーションをトリガーしたい場合があります。

var animateOn = isIE8 ? 'html' : 'body';
$(animateOn).animate();
于 2013-02-04T03:47:20.290 に答える