2010-04-20 4 views
4

Comment détecter la direction de défilement d'un div scrollable, à partir de l'événement OnScroll? Je veux ajouter 15 à scrollTop, si l'utilisateur fait défiler vers le haut et soustraire 15, si l'utilisateur fait défiler vers le bas. Est-il possible sans utiliser JQuery?Div scrollable: comment détecter la direction de défilement à partir de l'événement OnScroll pour un div scrollable?

+0

double possible [Peut-on utiliser la méthode Window.Onscroll pour inclure la détection de direction de défilement?] (Http://stackoverflow.com/questions/1222915/can-one-use-window-onscroll-method- to-include-detection-of-scroll-direction) – Rahul

Répondre

2

JSFIDDLE

/** 
* Calculate incremental amounts of pixels scrolled in each axis. 
* Value is signed to its direction. 
*/ 
function incrementalScroll(e) { 

    var scrollX = (this.x || window.pageXOffset) - window.pageXOffset; 
    var scrollY = (this.y || window.pageYOffset) - window.pageYOffset; 

    this.x = window.pageXOffset; 
    this.y = window.pageYOffset; 

    test(scrollX, scrollY); 
} 

window.onscroll = incrementalScroll; 

Utilisez-le comme vous voulez.

function test(scrollX, scrollY){ 

    var directionX = !scrollX ? "NONE" : scrollX>0 ? "LEFT" : "RIGHT"; 
    var directionY = !scrollY ? "NONE" : scrollY>0 ? "UP" : "DOWN"; 

    console.log(directionX, scrollX, directionY, scrollY); 
} 
Questions connexes