用窗口滚动查找光标的位置

时间:2012-07-02 05:42:27

标签: javascript jquery

有没有办法找到光标位于带有窗口滚动功能的HTML元素的顶部。

编辑:如果光标位于一个div的顶部,我必须调用以下脚本来暂停窗口滚动功能:

document.addEventListener('DOMMouseScroll', function(e){
   console.log(e);
   e.stopPropagation();
   e.preventDefault();
   e.cancelBubble = false;
   return false;
}, false);

1 个答案:

答案 0 :(得分:1)

如果你想要阻止滚动发生,如果鼠标光标(悬停)在特定元素上,则采用你提供的函数并添加一个条件,这样只有当一个标志是'n'时才取消DOMMouseScroll事件设置:

var allowScroll = true;

$("div.noscroll").hover(function() {
    allowScroll = false;
}, function() {
    allowScroll = true;
});

document.addEventListener('DOMMouseScroll', function(e) {
    if (!allowScroll) {
        console.log(e);
        e.stopPropagation();
        e.preventDefault();
        e.cancelBubble = false;
        return false;
    }
}, false);

演示:http://jsfiddle.net/WSQbp/

鉴于您已使用“jquery”标记了您的问题,我已使用jQuery设置管理该标志的悬停处理程序。您可以使用jQuery设置DOMMouseScroll处理程序来进一步简化代码:

$(document).on('DOMMouseScroll', function() {
    if (!allowScroll)
        return false;
});

演示:http://jsfiddle.net/WSQbp/1/