1


0

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

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

$(document).ready(function(){var nid = ["bottom"、 "nav"、 "news"、 "wow"、 "emu"、 "war"、 "aoc"、 "diablo"、 "prog" 、 "trade"]; $( 'li.navhead2')。(function(){var id = $(this).attr( 'id')var query = jQuery.inArray(id、nid)if(query!) == -1

'' '' '

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

slide関数は私の望む通りに動作しますが、ドロップダウンはしません(前述のように壊れます)そして何らかの理由で私のtoggleclassも動作しません(しかしそれは古いバージョンの上にあります)

1 Answer


2


height`パラメータには toggle`値を使います。 また、ユーザがアニメーションをもう一度クリックすることでアニメーションを中断することもできます( `.stop()`部分)。

アニメーション中に中断した場合(高さの50%まで)、次の呼び出しで私のアニメーションは50%から0になります。 私の次のものは0から50%まで行くでしょう。

http://docs.jquery.com/Effects/stop [Stop documentation]は、キューをクリアするため、またはアニメーションの終わりに移動するためにwetherを指定できることを指摘しています。 これらはあなたのケースです。

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

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