Scrollen im Browser anhalten...

  • Servus,

    vielleicht hat hier ja auch einer einen kleinen Denkanstoß.

    Problemstellung:
    Ich arbeite mit einer relativ komplexen Seite. Grundsätzlich eine One-Page, mit absoluten Positionen aller Elemente. Das Scrollen wird über ein (mehr oder weniger) komplexes JS realisiert, das noch einige andere Dinge steuert. Ausschlaggebend ist hier eine "data-position", die ich auch jederzeit abfragen kann.

    Die Container, die durchgescrollt werden, sollen zu bestimmten Zeitpunkten auftauchen. Wenn sie eine Position im sichtbaren Bereich erreicht haben, möchte ich das Scrollen für einen Moment... tja... "aussetzen". Sprich: der Besucher scrollt munter weiter, aber es passiert erstmal für n Pixel nix.

    Da die Elemente ausnahmslos absolut positioniert sind, funktioniert eine Lösung durch das Hinzufügen einer CSS-Klasse (100% Höhe, overflow auf hidden) _nicht_. Witzigerweise klappt es auf mobilen Geräten mit einem bind auf den body (preventDefault).

    Aktuell arbeite ich mit

    Code
    function noScroll() {
        if (window.addEventListener) {
            window.addEventListener('DOMMouseScroll', wheel, false);
        }
        window.onmousewheel = document.onmousewheel = wheel;
    }

    was aber nicht so richtig seinen Dienst verrichtet.

    Erschwerend kommt hinzu, dass keine Scrollbar vorhanden ist. Die einzelnen Punkte können aber über entsprechende Anker angesteuert werden (kennt man ja von den Slidern).

    Ein kleiner Fingerzeig wäre hilfreich.

    PS: stackoverflow hab ich schon durch, auch einige andere Sourcen.

    PPS: Link zum Projekt nur per PN an Leute, die ich hier kenne. Ansonsten sorry.

    PPPS: Eine entsprechendes Scrollen mit der Tastatur bekomme ich abgefangen, das ist an der Stelle schon gelöst. :)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hallo,
    hast du schon die HTML5-Attribute für MouseEvents und TouchEvents ausprobiert?
    Da gäb's auch noch KeyboardEvents ;-) ... aber die sind ja schon erfolgreich umgesetzt ;-)

    Gruß,
    Gsi

  • Ja, sollte aber weitestgehend in jedem Browser laufen. :)

    Ich hatte einen Knoten im Hirn, den ich mit etwas Schlaf lösen konnte. Da im Hintergrund eine Animation läuft, deren aktuellen Frame ich jederzeit kontrolliere, kann ich das einfach daran koppeln. Sogar mit einem Easing, damit es nicht so ausschaut, als würde man gegen eine Wand fahren... :D

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!