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

Finding position of cursor with window scroll

本文关键字:光标 位置 查找 滚动 窗口      更新时间:2023-09-26

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

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

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

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