jquery mousewheel: detecting when the wheel stops?

There’s no “stop” event here really – you get an event when you do scroll, so every time a mousewheel event happens the event is triggered…when there’s nothing you’ll get no events and your handler won’t be firing.

You ca however detect when the user hasn’t used it in say 250ms, like this:

$("#myElem").mousewheel(function() {
  clearTimeout($.data(this, 'timer'));
  $.data(this, 'timer', setTimeout(function() {
     alert("Haven't scrolled in 250ms!");
     //do something
  }, 250));
});

You can give it a try here, all we’re doing is storing the timeout on each use in using $.data(), if you use it again before that time runs out, it gets cleared…if not then whatever code you wanted to run fires, the user has “finished” using their mousewheel for whatever period of time you’re testing for.

Leave a Comment