Skip to main content

🚀 Back-to-Top Button

Back-to-Top Button für MODX 3

Bootstrap 5 + Bootswatch Spacelab


📜 JavaScript-Chunk anlegen oder das vorhandene Script um diese Funktion ergänzen

Chunkname: modxBS_JS
Back-to-Top Button wird erst ab einer definierten Scrolltiefe sichtbar (hier 800 px).

<script>
document.addEventListener('DOMContentLoaded', function () {
    const backToTop = document.querySelector('.back-to-top');
    if (!backToTop) return;

    window.addEventListener('scroll', function () {
        if (window.scrollY > 800) {
            backToTop.classList.add('show');
        } else {
            backToTop.classList.remove('show');
        }
    });

    backToTop.addEventListener('click', function () {
        window.scrollTo({
            top: 0,
            behavior: 'smooth'
        });
    });
});
</script>

🔘 Button im Haupttemplate einfügen

Der Back-to-Top Button wird am Ende des Templates direkt vor </body> platziert.
Die JS-Chunks müssen oberhalb des Buttons stehen.

Beispiel (korrekter Template-Ausschnitt):

...
[[$modxFooter]]

<!-- JS-Chunks -->
[[$modxBS_JS_ToggleSave]]
[[$modxBS_JS_BackToTop]]

<!-- Bootstrap JS -->
<script src="[[++assets_url]]bs5/bootstrap.bundle.min.js"></script>

<!-- Back-to-Top Button -->
<button type="button"
        class="btn btn-primary back-to-top"
        aria-label="Nach oben">
    ↑
</button>

🎨 CSS in tmpBS_meinStyle einfügen

.back-to-top {
    position: fixed;
    bottom: 1.5rem;
    right: 1.5rem;
    display: none;
    z-index: 1030;
    opacity: 0.9;
}

.back-to-top.show {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}