0

TYPO3 (v6.2.1) で優れた mmenu を使用するには、TYPO3 で 2 つの異なるメニュー (TMENUS) を生成します: - デスクトップ メニュー (サブメニューの開閉を含む) - モバイル メニュー (すべてのレベルを一度に開く)

css メディア クエリを使用して、モバイル使用時にはデスクトップを非表示にし、デスクトップ使用時にはモバイル メニューを非表示にします。モバイル デバイスで新しいページを開くと、非表示になる前に「裸の」リスト メニューが一瞬表示されます。特にサーバーへの接続が遅い場合は、少し気がかりです。問題を解決するためのアイデアをありがとう。

4

3 に答える 3

1

mmmenu が初期化される前にコンテナがポップアップしないように、後でスクリプトによって「消費」されるコンテナを非表示にする必要があります。たとえば、持っている場合

<ul class="mobile-navigation">

CSSを使用してそれまたはそのコンテナを非表示にするだけです

display: none;
于 2014-04-27T22:47:34.010 に答える
0

ここにTYPO3のjsコード

 /**
 * smartphone / tablet navi
 * http://mmenu.frebsite.nl/
 */
$(document).ready(function() {
    $(".mainMenuSlideLeft").attr("href", "#mainMenuSlideLeft");
    $("#mainMenuSlideLeft").mmenu({
        header: {
            add: true,
            update: true,
            title: "Men&uuml; / Startseite",
        },
        offCanvas: {
            position: "left",
            //zposition: "front"
        },
        //onClick: {
        //  preventDefault: true,
        //},
    });
});
于 2014-12-10T09:23:45.183 に答える
0

結論が出ました。最初に、モバイル バージョン用の別のメニューを作成する必要があります。次のスクリプトを使用します (templavoila.ts に入れることができます)。

## Mobilmenu
lib.mobilnavigation = HMENU
lib.mainMenu.entryLevel = 0
lib.mobilnavigation.wrap = <ul id="mobilnavi">|</ul>
lib.mobilnavigation.1 = TMENU
lib.mobilnavigation.1 {
    expAll = 1
    noBlur = 1
    NO {
        subst_elementUid = 1
        ATagTitle.field = abstract // description // title
        ATagParams=id="pid{elementUid}
        ATagBeforeWrap = 1
        allWrap = <li class="mobilnavi-item">|</li>
        linkWrap=<span class="mobilnavi-item hide">|</span>
    }
    IFSUB < .NO
    IFSUB = 1
    IFSUB {
        allWrap = <li class="mobilnavi-item">|
    }
    ACT < .NO
    ACT = 1
    ACT {
        allWrap = <li class="mobilnavi-item active">|</li>
    }
    ACTIFSUB < .NO
    ACTIFSUB = 1
    ACTIFSUB {
        allWrap = <li class="mobilnavi-item active">|
    }
}
lib.mobilnavigation.2 = TMENU
lib.mobilnavigation.2 {
    expAll = 1
    noBlur = 1
    wrap = <ul class="leve_2">|</ul></li>
    NO {
        subst_elementUid = 1
        ATagTitle.field = abstract // description // title
        ATagParams=id="pid{elementUid}
        ATagBeforeWrap = 1
        allWrap = <li>|</li> |*| <li>|</li>
    }
    ACT < .NO
    ACT = 1
    ACT {
        allWrap = <li class="active">|</li> |*| <li class="active">|</li>

次に、mmenu jQuery 拡張機能は、モバイル メニューとそのサブメニューを認識します。

mmenu のスクリプト

(function($){var $mmenu=$('#navigation');$(document).ready(function(){$mmenu.mmenu({isMenu: true,classes: "mm-fullscreen mm-slide mm-black",offCanvas: {moveBackground: false,position: "top",zposition: "front"},searchfield: {add: true,search: true,placeholder: "Suchen",noResults: "Keine Ergebnisse gefunden.",showLinksOnly: true},dragOpen: {open: true}},{classNames: {selected: "active"}}).removeClass('invisible');});})(jQuery);

于 2015-05-18T13:07:39.630 に答える