toc-menu

Von $1

    Inhaltsverzeichnis
    keine Gliederung

    Version seit 15:24, 5 Nov 2026

    zu dieser Version.

    Zurück zu Versionshistorie.

    Zeige aktuelle Version

    :root {
        --menu-width: 500px;
        --menu-width-mobile: 320px;
        --menu-max-height: 70vh;
        --menu-max-height-mobile: 60vh;
        --menu-font-size: 18px;
        --menu-font-title-size: 22px;
        --menu-background: white;
        --menu-border-color: #ddd;
        --icon-size: 50px;
        --icon-size-mobile: 45px;
        --icon-background: #333;
        --icon-background-hover: #555;
    }
    
    /* -------------------------------------------------
       Grundlegende Icons und Menü‑Panel
    ------------------------------------------------- */
    .menu-toggle-icon {
        position: fixed !important;
        bottom: 30px !important;
        left: 30px !important;
        width: var(--icon-size) !important;
        height: var(--icon-size) !important;
        background: var(--icon-background) !important;
        border-radius: 50% !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        cursor: pointer !important;
        z-index: 9998 !important;          /* oberhalb des Panels */
        opacity: 0.8 !important;
        transition: opacity 0.3s !important;
    }
    .menu-toggle-icon:hover {
        opacity: 1 !important;
        background: var(--icon-background-hover) !important;
    }
    .menu-toggle-icon::before {
        content: '☰' !important;
        color: white !important;
        font-size: 28px !important;
        font-weight: bold !important;
        line-height: 1 !important;
        margin-left: 5px !important;
    }
    
    /* -------------------------------------------------
       Menü‑Panel (jetzt über allen Ebenen)
    ------------------------------------------------- */
    #menuPageContent {
        position: fixed !important;
        bottom: 90px !important;
        left: 20px !important;
        background: var(--menu-background) !important;
        border: 1px solid var(--menu-border-color) !important;
        width: var(--menu-width) !important;
        max-height: var(--menu-max-height) !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        z-index: 2147483647 !important;    /* maximaler Z‑Index – über allen anderen Elementen */
        box-sizing: border-box !important;
    }
    
    /* -------------------------------------------------
       Basis‑Stile für Inhalte im Panel
    ------------------------------------------------- */
    #menuPageContent *,
    #menuPageContent .dmenu-top_m,
    #menuPageContent .dmenu-body_m {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        background: var(--menu-background) !important;
    }
    #menuPageContent .dmenu-top_m,
    #menuPageContent .dmenu-body_m {
        font-size: var(--menu-font-size) !important;
        line-height: 1.8 !important;
    }
    #menuPageContent .dmenu-body_m ol li a {
        font-size: var(--menu-font-title-size) !important;
    }
    
    /* -------------------------------------------------
       Scroll‑Bar Styling
    ------------------------------------------------- */
    #menuPageContent::-webkit-scrollbar {
        width: 8px !important;
    }
    #menuPageContent::-webkit-scrollbar-track {
        background: var(--menu-background) !important;
    }
    #menuPageContent::-webkit-scrollbar-thumb {
        background: #888 !important;
    }
    #menuPageContent::-webkit-scrollbar-thumb:hover {
        background: #555 !important;
    }
    
    /* -------------------------------------------------
       RESPONSIVE ANPASSUNGEN (Mobile)
    ------------------------------------------------- */
    @media (max-width: 768px) {
        .menu-toggle-icon {
            width: var(--icon-size-mobile) !important;
            height: var(--icon-size-mobile) !important;
            bottom: 20px !important;
            left: 20px !important;
        }
        #menuPageContent {
            width: var(--menu-width-mobile) !important;
            bottom: 75px !important;
            max-height: var(--menu-max-height-mobile) !important;
        }
    }
    
    /* -------------------------------------------------
       *** NEUE REGELN – dmenu immer ganz oben ***
    -------------------------------------------------
    .dmenu {
        position: relative !important;      /* nötig für Z‑Index */
        z-index: 10000 !important;         /* > 9998 (Icon) und > 9997 (Panel) */
    }
    #menuPageContent .dmenu,
    #menuPageContent .dmenu * {
        display: block !important;
        visibility: visible !important;
    }
    #menuPageContent .dmenu {
        overflow: visible !important;
    }
    
    /* Optional: falls du das komplette Panel noch weiter nach vorne bringen willst
    #menuPageContent {
        z-index: 2147483647 !important;
    }
    */
     
     
     
    <!-- JavaScript -->
    (function() {
        var menuIcon = document.getElementById('menuToggleIcon');
        var isMenuOpen = false;
        
        menuIcon.addEventListener('click', function(e) {
            e.stopPropagation();
            var dmenu = document.getElementById('menuPageContent');
            
            if (dmenu) {
                if (isMenuOpen) {
                    dmenu.style.display = 'none';
                    isMenuOpen = false;
                } else {
                    window.menuBubble = true;
                    dmenu.style.display = 'block';
                    isMenuOpen = true;
                }
            }
        });
        
        document.addEventListener('click', function(e) {
            var dmenu = document.getElementById('menuPageContent');
            if (isMenuOpen && dmenu) {
                var clickedInsideMenu = dmenu.contains(e.target);
                var clickedIcon = menuIcon.contains(e.target);
                
                if (!clickedInsideMenu && !clickedIcon) {
                    dmenu.style.display = 'none';
                    isMenuOpen = false;
                } else if (clickedInsideMenu && e.target.tagName === 'A') {
                    dmenu.style.display = 'none';
                    isMenuOpen = false;
                }
            }
        });
    })();
     

     
    Use the language selection below for English Utilise le sélecteur de langue ci-dessous pour français Per l'italiano, utilizzare la selezione della lingua qui sotto Schön sprichst du deutsch :-)