0

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

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

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

1 回答 1

1

如果您说如果鼠标光标(悬停)在特定元素上时要防止发生滚动,则使用您提供的函数并添加条件,以便仅在未设置标志时取消 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/

于 2012-07-02T06:45:16.213 回答