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