Javascript 轨道“;OnMouseNotMoving";jQuery中的事件?

Javascript 轨道“;OnMouseNotMoving";jQuery中的事件?,javascript,jquery,Javascript,Jquery,所以我想让页面的用户有点恼火:当用户不移动鼠标时,它应该在鼠标位置显示一个层,当鼠标移动时,它也会隐藏一个层,并且会有延迟 我已经用jQuery的delay()解决了延迟部分。但我不确定实施OnMouseNotMoving的最佳方式是什么 jQuery中是否有一个“计时器”,即当鼠标不移动时会启动,并在足够长的时间后触发事件 Thx.您必须自己创建此活动。Javascript本身有计时器setInterval()是您正在寻找的方法。它将以指定的间隔执行函数 如果鼠标坐标在指定的时间间隔内没有移动

所以我想让页面的用户有点恼火:当用户不移动鼠标时,它应该在鼠标位置显示一个层,当鼠标移动时,它也会隐藏一个层,并且会有延迟

我已经用jQuery的delay()解决了延迟部分。但我不确定实施OnMouseNotMoving的最佳方式是什么

jQuery中是否有一个“计时器”,即当鼠标不移动时会启动,并在足够长的时间后触发事件


Thx.

您必须自己创建此活动。Javascript本身有计时器
setInterval()
是您正在寻找的方法。它将以指定的间隔执行函数


如果鼠标坐标在指定的时间间隔内没有移动,基本上可以检查鼠标坐标,然后执行操作。

您必须自己创建此事件。Javascript本身有计时器
setInterval()
是您正在寻找的方法。它将以指定的间隔执行函数


如果鼠标坐标在指定的时间间隔内没有移动,基本上可以检查鼠标坐标,然后执行操作。

在mousemove上,可以使用setTimeout()和clearTimeout()方法添加。大概是这样的:

    var timeout = null;

    $(document).bind('mousemove', function(e) {
        // use e.pageX and e.pageY to position your message

        // clear and set timeout
        if(timeout) {
            hideMessage();
            clearTimeout(timeout);
        }
        timeout = setTimeout(function(x, y){
            return showMessage(x, y);
        }(e.pageX, e.pageY), 3000);

        function showMessage(x, y) {
            // your code to show message
        }
        function hideMessage() {

        }
    });

在mousemove上,可以使用setTimeout()和clearTimeout()方法添加。大概是这样的:

    var timeout = null;

    $(document).bind('mousemove', function(e) {
        // use e.pageX and e.pageY to position your message

        // clear and set timeout
        if(timeout) {
            hideMessage();
            clearTimeout(timeout);
        }
        timeout = setTimeout(function(x, y){
            return showMessage(x, y);
        }(e.pageX, e.pageY), 3000);

        function showMessage(x, y) {
            // your code to show message
        }
        function hideMessage() {

        }
    });

据我所知不是这样,但是为什么不创建一个间隔来获取鼠标位置并检查它是否已更改:

var x, y, time, mouseTimeout = 2000;

function checkPosition(e) {
  var t = new Date();
  if (e.clientX !== x || e.clientY !== y) {
    //mouse changed
    time = t;
    x = e.clientX;
    y = e.clientY;
  }
  if ((t - time) > mouseTimeout) {
    //annoy users
  }
}

<body onmousemove="checkPosition();">
</body>
var x,y,time,mouseTimeout=2000;
功能检查位置(e){
var t=新日期();
if(e.clientX!==x | | e.clientY!==y){
//鼠标改变
时间=t;
x=e.clientX;
y=e.clientY;
}
如果((t-时间)>鼠标超时){
//惹恼用户
}
}

据我所知不是这样,但为什么不创建一个间隔来获取鼠标位置,并检查它是否已更改:

var x, y, time, mouseTimeout = 2000;

function checkPosition(e) {
  var t = new Date();
  if (e.clientX !== x || e.clientY !== y) {
    //mouse changed
    time = t;
    x = e.clientX;
    y = e.clientY;
  }
  if ((t - time) > mouseTimeout) {
    //annoy users
  }
}

<body onmousemove="checkPosition();">
</body>
var x,y,time,mouseTimeout=2000;
功能检查位置(e){
var t=新日期();
if(e.clientX!==x | | e.clientY!==y){
//鼠标改变
时间=t;
x=e.clientX;
y=e.clientY;
}
如果((t-时间)>鼠标超时){
//惹恼用户
}
}

谢谢。这也是我的想法。我记得我们曾经在cs课程中使用过javascript中的计时器。我得调查一下,谢谢。这也是我的想法。我记得我们曾经在cs课程中使用过javascript中的计时器。我得调查一下。谢谢你的回答。这听起来是个解决办法。设置/获取超时正是我想要的。thx为您解答。这听起来是个解决办法。set/get Timeout正是我想要的。1)您可能想在第一个if语句中包含第二个if语句。2) 位置几乎总是会改变,因为你只会在mousemove上执行代码。我不应该那么早发布;)1) 您可能打算在第一个if语句中包含第二个if语句。2) 位置几乎总是会改变,因为你只会在mousemove上执行代码。我不应该那么早发布;)