简体   繁体   中英

Event on scrolling up or down

I wanna detect when the user scrolls. I saw there are some questions about this but those answers didn't help me.
Here is my code:

var up = document.getElementById('up');
var down = document.getElementById('down');
function onScroll() {
if (view.scrollTop > 0) {
    console.log("up");
}
if (view.scrollTop < 0) {
    console.log("down");
 }
}
var view = document.getElementById('container');
view.addEventListener("wheel", onScroll);

EDIT: "scroll" instead "wheel" isn't working for me... I must have the "wheel". When I make:

if (view.scrolltop <=0) {
    console.log("down");
 } 

that I get in my console "down" but it appears when I scrolling up too! I have my page in 100% of screen and I have no scrollbars (and I don't want to have).

EDIT2: Here is the code that solved my problem!

window.addEventListener('wheel', function (e) {
if (e.deltaY < 0) {
    console.log("scrolling up");
 }
if (e.deltaY > 0) {
    console.log("scrolling down");
 }
});

you can use the

window.onscroll

to get the scrolling event, then just use

.scrollTop 

to determine your offset from the top of page or an element.

window.onscroll = function() { scrollFunction() };

scrollFunction() {

 //code to check if it is scrolling up or down
}

Hopefully this was a helpful start.

I did this with the jquery method

var last = 0;
$(window).scroll(function(event){
   var Pos = $(this).scrollTop();
   if (Pos > last ){
       // down
   } else {
      // up
   }
   last = Pos;
});

Supporting @Belmin Bedak's comment.

Use .scroll instead of .wheel :

 var up = document.getElementById('up'); var down = document.getElementById('down'); function onScroll() { if (view.scrollTop > 0) { alert("up"); } if (view.scrollTop <= 0) { alert("down"); } } var view = document.getElementById('container'); view.addEventListener("scroll", onScroll); 
 div { border: 1px solid black; width: 200px; height: 100px; overflow: scroll; } 
 <div id='container'>a<br> b<br> c<br> d<br> e<br> f<br> g<br> h<br> i<br> k<br> l<br> </div> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM