javascript - 如何仅在鼠标移动时触发mousemove事件

标签 javascript jquery mouseevent mousemove onmousemove

在我的example 即使鼠标没有移动但位于容器内,也会触发事件。

var page = $('.Page'),
    consoleContainer = $('.Console');

page.mousemove(null, function(e){
    var mousePosX = (e.pageX/$(window).width())*100;
    consoleContainer.val('mousePos: ' + mousePosX + ' randomNumber: ' + Math.random());
});

我想要的: 如果鼠标不移动但在容器内,则该事件不应起作用

PS:抱歉我的英语水平

最佳答案

您可以保存之前的光标位置,并在触发 mousemove 事件时检查它是否等于当前鼠标位置。

这样的事情应该按预期工作:

var page = $('.Page'), consoleContainer = $('.Console');
var prevPos = '';

page.mousemove(null, function(e)
{
    var currPos = e.pageX + '-' + e.pageY;

    if (prevPos != currPos)
    {
        prevPos = currPos;
        var mousePosX = (e.pageX / $(window).width()) * 100;
        consoleContainer.val('mousePos: ' + mousePosX + ' randomNumber: ' + Math.random());
    }
});

关于javascript - 如何仅在鼠标移动时触发mousemove事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24971511/

相关文章:

javascript - 在基于 HTML5 的游戏中使用 Javascript Cookie 跟踪 HP

javascript - 仅在移动设备上显示 div

javascript - 根据所选数字指定数字范围

javascript - jQuery:这些对于 find() 方法来说都是正确的吗?

javascript - 如何使用angular 2在URl中使用问号

javascript - 如何使用map在react Native中过滤和添加来自json本地文件的数据的条件语句

javascript - 有什么方法可以禁止某些 DOM 元素捕获鼠标事件吗?

java - 在 Eclipse Java 中未检测到鼠标输入

javascript - Angular 模板文字 : Addition after converting string to number becoming just concatenation

jquery - 使用 jQuery 阻止鼠标 "capturing"元素?