Use jQuery to check mousewheel event without scrollbar

后端 未结 4 696
广开言路
广开言路 2020-12-03 06:10

How to check mousewheel movement without scrollbar?

$(document).mousewheel(function() {
     clicker.html(\"a7a\");
});
相关标签:
4条回答
  • 2020-12-03 06:26

    I highly recommend you use this jQuery plugin: PLUGIN

    Without a plugin, try this example: EXAMPLE

    HTML:

    <div id='foo' style='height:300px; width:300px; background-color:red'></div>
    

    Javascript:

    $('#foo').bind('mousewheel', function(e) {
        if(e.originalEvent.wheelDelta / 120 > 0) {
            alert('up');
        } else {
            alert('down');
        }
    });
    

    There is no scrollbar on the div but the wheel event is detected.

    0 讨论(0)
  • 2020-12-03 06:35

    This is just an update to @Aaron's answer, using the new "wheel" event, described here: https://developer.mozilla.org/en-US/docs/Web/Events/wheel

    $('#foo').on('wheel', function(e){
        if(e.originalEvent.deltaY < 0) {
            console.log('scrolling up !');
        } else{
            console.log('scrolling down !');
        }
    });
    

    You can also use deltaX to see horizontal scroll, or deltaZ if you've got some crazy 3D thing going on.

    0 讨论(0)
  • 2020-12-03 06:41

    use this code

    $('#foo').bind('mousewheel DOMMouseScroll', function (event) {           
         if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) {
              //up
         }
         else {
              //down
         }
    });
    
    0 讨论(0)
  • 2020-12-03 06:48

    And, if you don't want to use any plugin at all (IE8, Chrome, Firefox, Safari, Opera...), just do this:

    if (document.addEventListener) {
        document.addEventListener("mousewheel", MouseWheelHandler(), false);
        document.addEventListener("DOMMouseScroll", MouseWheelHandler(), false);
    } else {
        sq.attachEvent("onmousewheel", MouseWheelHandler());
    }
    
    
    function MouseWheelHandler() {
        return function (e) {
            // cross-browser wheel delta
            var e = window.event || e;
            var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
    
            //scrolling down?
            if (delta < 0) {
                alert("Down");
            }
    
            //scrolling up?
            else {
                 alert("Up");
            }
            return false;
        }
    }
    

    Living example: http://jsfiddle.net/CvCc6/1/

    0 讨论(0)
提交回复
热议问题