11

スクロールバーなしでマウスホイールの動きを確認するには?

$(document).mousewheel(function() {
     clicker.html("a7a");
});
4

4 に答える 4

32

この jQuery プラグインを使用することを強くお勧めします: PLUGIN

プラグインなしで、この例を試してください:

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');
    }
});

div にスクロールバーはありませんが、ホイール イベントが検出されます。

于 2013-09-18T19:03:29.647 に答える
9

このコードを使用してください

$('#foo').bind('mousewheel DOMMouseScroll', function (event) {           
     if (event.originalEvent.wheelDelta > 0 || event.originalEvent.detail < 0) {
          //up
     }
     else {
          //down
     }
});
于 2015-02-28T08:57:11.883 に答える
7

また、プラグイン (IE8、Chrome、Firefox、Safari、Opera...) をまったく使用したくない場合は、次のようにします。

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;
    }
}

実際の例: http://jsfiddle.net/CvCc6/1/

于 2013-09-25T16:34:12.933 に答える