-4

我有一个没有滚动的页面。

当鼠标滚轮转动时,我如何设置警报(例如)?

例如当鼠标滚轮打开一个元素时:

$(document).ready(function(){
  $('#div').mouseWheel(function(){
    alert('test');
  });
});
4

2 回答 2

2

您可以检测到滚动,但无法检测到是通过鼠标滚轮、滚动条、指板、触摸屏还是其他方法。

你在浏览器中得到的只是一个滚动事件。

我想这不是你想听到的。对不起。

于 2013-11-06T13:18:19.417 回答
2

好的,如果你需要鼠标滚轮,你应该考虑jquery-mousewheel 插件。在那里你可以绑定'mousewheel'事件。

该事件还带有 deltaX 和 deltaY 信息,您可以从中推断鼠标滚轮是向上滚动(deltaY > 0)还是向下滚动(deltaY < 0)。

通过鼠标滚轮向上/向下检测查看它的实际效果

HTML:

<div id="mydiv" style="background: green; width: 400px; height: 400px;">
    a div
</div>

JAVASCRIPT:

$('#mydiv').hover(function() {
   $(this).data('hover',1); // mouse is over the div
}, function(){
   $(this).data('hover',0); // mouse is no longer over the div
});

$(document).mousewheel(function(event, delta, deltaX, deltaY) {
    if($('#mydiv').data('hover') == 1 && $(document).attr('alert-on') != 1) {
        $(document).attr('alert-on', 1) 
        if(deltaY > 0) {
            alert('wheel scrolls up');
        } else {
            alert('wheel scrolls down');
        }
        $(document).attr('alert-on', 0) 
    }
});

它的作用是在鼠标悬停时在您的 div 上设置一个标志,一旦捕获鼠标滚轮事件,它就会检查您是否<div>使用鼠标悬停,如果是,它会显示一个警告框。

它还在文档上设置了一个显示警报框的标志,因为每次稍微转动滚轮时都会发出鼠标滚轮事件,这会导致许多警报框相互堆叠。

于 2013-11-06T13:29:08.147 回答