Scrollrichtung ermitteln

wenco

Erfahrenes Mitglied
Hallo,
ich möchte ein DIV einblenden, immer dann wenn der User nach oben scrollt und immer ausblenden, wenn er herunterscrollt.
Also kleinste Scrollbewegung hoch = einblenden, kleinste Scrollbewegung runter = ausblenden.

Ich finde aber nur Scripte, die Distanz zu einem Seitenelement ermitteln und die Sichtbarkeit eines DIVs an dieser Distanz ausrichten.
Kann ich die Scrollrichtung an sich mit Javascript abfragen?

Danke.
 
Die aktuelle vertikale Position lässt sich mit der window-Eigenschaft pageYOffset ermitteln. In Verbindung mit der scrollBy()-Methode können die Scrollrichtungen mit ihren jeweiligen Aktionen definiert werden.
 
Zuletzt bearbeitet:
Ich habe mal kurz folgendes geschrieben, was das Event scroll in vier Events aufspaltet: scroll-left, scroll-right, scroll-up und scroll-down. Du kannst sie dann wie andere Events mit einem EventListener auf das Objekt window verwenden.

Javascript:
(function() {
  var lastX = window.pageXOffset,
      lastY = window.pageYOffset;

  window.addEventListener( "scroll", function ( e ) {
    var ne = document.createEvent( "Event" );
    
    if ( lastX > window.pageXOffset ) {
      ne.initEvent( "scroll-right", e.bubbles, e.cancelable );
    } else if ( lastX < window.pageXOffset ) {
      ne.initEvent( "scroll-left", e.bubbles, e.cancelable );
    } else if ( lastY > window.pageYOffset ) {
      ne.initEvent( "scroll-down", e.bubbles, e.cancelable );
    } else {
      ne.initEvent( "scroll-up", e.bubbles, e.cancelable );
    }

    window.dispatchEvent( ne );
  });
})();
 

Neue Beiträge

Zurück