1

http://mmowned.org/dragon/slm/menu9.html

古いバージョン (menu7.html) のアニメーション キューイングを解決するために、ドロップダウン メニューで .stop() を使用してみました。問題は、ドロップダウンを途中で「停止」してから再度開始すると、メニューが壊れて、停止した場所に戻るだけです:/

これは本当に簡単だと確信していますが、どうすればこれを修正できますか?

$(document).ready(function() {  
    var nid=["bottom","nav","news","wow","emu","war","aoc","diablo","prog","trade"];  
    $('li.navhead2').click(function () {  
    var id = $(this).attr('id')  
    var query = jQuery.inArray(id, nid)  
    if (query !== -1 && query !== 0)  
    {  
       $("#menu"+query).slideFadeToggle('slow');  
        if (query !== 1 && query !== 0)  
        {  
        $(this).toggleClass("clicked");  
        }  
        else  
        {  
        $(this).toggleClass("clicked1");  
        }  
    }  
    else if (query === 0)  
    {
    $("[id^=menu]").not("#menu1").slideUp('fast');  
    $("li.navhead2").removeClass("clicked");  
    }  
    });   
 slide("#sliding-navigation", 160, 182, 150, .8);  
  });  

jQuery.fn.slideFadeToggle = function(speed, easing, callback) {  
    return this.stop().animate({opacity: 'toggle', height: 'toggle', queue:false}, speed, easing, callback);  
};

スライド機能は希望どおりに機能しますが、ドロップダウンは機能しません(前述のように壊れます)。何らかの理由でトグルクラスも機能しません(ただし、古いバージョンにあります)

4

1 に答える 1

2

toggleパラメータに値を使用しheightます。
また、ユーザーがもう一度クリックしてアニメーションを中断できるようにします (.stop()パーツ)。

アニメーション中に中断すると (たとえば、彼の身長の 50% まで)、次の呼び出しでアニメーションが 50% から 0 になります。次のアニメーションは 0 から 50% になります。

ドキュメントを停止すると、キューをクリアしたり、アニメーションの最後に移動したりするかどうかを指定できることが指摘されています。これらはあなたのケースです。

jQuery.fn.slideFadeToggle = function(speed, easing, callback) {  
    return this.stop(true,true).animate({opacity: 'toggle', height: 'toggle', queue:false}, speed, easing, callback);  
};

trueストップに追加された 2 つの値に注意してください。これはうまくいくはずです。

于 2009-11-09T17:26:28.300 に答える