Neo
Neo

Reputation: 213

prevent mousewheel 1s after mousewheel

I have a problem, i want like this:

$(window).on('mousewheel', function(event) {
  //prevent mousewheel in 1s
  //do something, after 1s, enable mousewheel
}

or like this: you rolled wheel many times in 1s, function in event mousewheel run 1 times. Someone help me!

Upvotes: 0

Views: 49

Answers (3)

heraphim
heraphim

Reputation: 346

var pauseWheel = false;
$(window).on('mousewheel', function(event) {
     if(pauseWheel) {
         event.preventDefault();
     }
     else {
         pauseWheel = true;
         setTimeout(function(){ pauseWheel = false; }, 1000);
     }
}

pauseWheel is a variable true if the mousewheel event fired in the last 1000ms.

Upvotes: 0

jarodsmk
jarodsmk

Reputation: 2099

You could do something like this:

var mouseWheelEnabled = true;

function doSomethingWithMousewheel(event){
    if(mouseWheelEnabled){
    //... your code here


    // set enabled = false;
    mouseWheelEnabled = false;

    setTimeout(function(){
      mouseWheelEnabled = true;
    }, 1000);
  }

}

$(window).on('mousewheel', doSomethingWithMousewheel);

Upvotes: 1

user8689373
user8689373

Reputation: 125

var scrollstop = false;

$(window).on('mousewheel', function(event) {
  if(!scrollstop) {
    scrollstop = true;
    setTimeout(() => { scrollstop = false; }, 1000);
  }
}

Something like this?

Upvotes: 1

Related Questions