首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测mousemove,但让单击事件通过

问检测mousemove,但让单击事件通过
EN

Stack Overflow用户
提问于 2015-06-26 07:38:13
回答 2查看 2.7K关注 0票数 4

我正在研究一个覆盖层。我需要点击才能传递到下面的HTML元素,为此我可以使用“指针-事件:无”。但是,我也需要覆盖来检测mousemove事件,这样我就可以在鼠标光标所在的位置上画一个巨大的十字线。问题是,将“指针-事件”设置为“无”会阻止那些mousemove事件的触发。

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-26 12:12:02

在这种情况下,您需要从窗口获取mousemove事件,而不是覆盖。

代码语言:javascript
复制
$(window).mousemove( function(e){
    $('.v').css('left', e.clientX + 'px');
    $('.h').css('top', e.clientY + 'px');
});

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

(或者,如果窗口对您来说太宽了,请使用与您交互的元素的最近的父元素-它会给出与覆盖相同的坐标)

票数 3
EN

Stack Overflow用户

发布于 2015-06-26 07:51:05

您可以创建一个大小相同的overlay的父级,并且可以通过CSS定制一个交叉鼠标光标,并包含要捕获单击事件的元素。然后,子程序仍然能够捕获单击事件。

HTML:

代码语言:javascript
复制
<div class="overlay-parent">
    <div class="below">This is the content below</div>
    <div class="overlay">This is the overlay</div>
</div>

CSS:

代码语言:javascript
复制
.overlay-parent, .overlay {
    top:0;
    bottom:0;
    left:0;
    right:0;
    position:absolute;
    cursor:crosshair;
}
.overlay {
    background-color:rgba(255, 0, 0, 0.5);
    pointer-events:none;
}
/* just to make it clear */
 .below {
    margin-top:100px;
}

Javascript:

代码语言:javascript
复制
$('.below').click(function () {
    console.log('clicked');
});

演示:http://jsfiddle.net/7oLnnaxc/

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31067634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档