你如何捕获窗口上的鼠标移出事件?

5

问题尚无答案(如果您能提供经过测试的实际代码而不是在互联网上搜索我的问题并链接到任何回答,我将接受它作为答案。但由于我已经查看过所有这些问题,请不要假装它们有效除非您能提供已经测试过的实际代码)

如果你只需要

$(window).on("mouseout", function() { alert("OUT"); });

您可以在窗口的左侧或右侧进行鼠标移出操作,但不会触发事件。我制作了一个jsfiddle(这里),但实际上它运行良好,因为iframe周围有一个边框。

那么,最好的方法是如何知道鼠标是否离开了窗口?我可以在页面周围放置一个由4个div组成的1px边框。我可以监视x/y并判断鼠标是否在边缘。但理想情况下,$(window).on("mouseout", foo)将告诉我鼠标何时离开窗口。

你可以使用 box-sizing:border-box; 和透明边框。 - www139
JQuery的mouseleave也可以使用,但我记不太清了;我会研究一下JQuery的mouseleave。 - www139
看一下这个:https://dev59.com/Zl_Va4cB1Zd3GeqPSE-U#8873586 - www139
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Rodrigo5244
1个回答

0

这个答案是可行的:https://dev59.com/CnNA5IYBdhLWcg3wh-cC#3187524

使用jQuery,您可以将代码重写为:

$(window).on("mouseout", function(e) {
    if(!e.relatedTarget || e.relatedTarget.nodeName == 'HTML') {
        alert('left window');
    }
});

该代码已在最新版本的Firefox和Chrome上进行了测试。


你太棒了!这对我来说在垂直和水平鼠标移出时都有效。 - user2102611

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接