0

現在、モバイルメニューとして mmenu があります。閉じるときにメニューを最初のレベルにリセットできる必要があります。現在のところ、デフォルトの機能は、メニューを閉じて再度開いた後、サブレベルにさらに深くナビゲートしている間、中断したところから離れています。

この件についてお役に立てれば幸いです。

ありがとうございました!!

4

5 に答える 5

0

「closed」コールバック イベントを使用して、開いているすべてのパネルを閉じることができます。

これを行うコツは、水平サブメニューを使用している場合 (デフォルト設定) に、最初のパネル (「メイン」レベル メニュー) を開くことです。

$("#menu").mmenu();
$("#menu").on( "closed", function() {
    $("#menu .mm-panel").first().trigger( "open.mm" );
});
于 2014-03-25T21:10:00.650 に答える
0

lib自体をハックしようとすることができます。

例えば:

を。このコードを見つけます (ca. #374):

this.__transitionend(a.$page.first(), function () {

b. 上記のコードの直後に、次のようなものを挿入できます。

var jid = t.$menu.attr('id');
$('#' + jid + ' .mm-panels').fadeOut('fast', function(){
    $(this).children().removeClass('mm-opened mm-subopened mm-hidden mm-current mm-highest');
    $('#' + jid + ' .mm-panels :first-child').addClass('mm-opened mm-current');
}).fadeIn('高速');

説明:

元の mm コード (探しているもの) は、パネルが閉じられる方法や理由に関係なく、パネルが閉じられると発生します。

貼り付けたコードは、mmenu エンジンが使用するクラスを再配置して、mmenu の状態を変更します。

すべてのトランジションをよりスムーズに行うために、パネルの可視セクション (たとえば、アイコンバー拡張機能を使用している場合) がフェードアウトし、メニュー パネルの再配置後にメイン アイコンバーがフェードインします。

于 2015-12-17T23:00:36.730 に答える