我能找到光标位置。但我需要找出鼠标是否稳定。如果鼠标移动时间超过1分钟,则必须提醒用户。
如何可能,是否有任何特殊事件? (仅适用于javascript中的IE)
答案 0 :(得分:42)
将鼠标移动一分钟后设置超时,如果移动鼠标,请清除超时:
var timeout;
document.onmousemove = function(){
clearTimeout(timeout);
timeout = setTimeout(function(){alert("move your mouse");}, 60000);
}
答案 1 :(得分:1)
在每次鼠标移动事件后,是否没有办法设置计时器开始递增?
如果它达到一分钟然后弹出消息框,但每次鼠标移动时,计时器都会重置。
答案 2 :(得分:1)
使用计时器重置其在mousemove事件上的值。 如果计时器达到1分钟 - >做点什么。
计时器的更多信息http://www.w3schools.com/js/js_timing.asp
有关捕获鼠标事件的更多信息http://www.quirksmode.org/js/events_mouse.html
答案 3 :(得分:1)
是的,你在Javascript中有一个onmousemove事件,所以要实现你所需要的,你只需要做这样的代码:
startTimer();
element.onmousemove = stopTimer(); //this stops and resets the timer
例如,您可以在文档正文标记上使用它。
更新:@Marius取得了比这更好的例子。
答案 4 :(得分:0)
您可以使用onmousemove事件。在其中,clearTimeout()和setTimeout(your_warning,1分钟)。
答案 5 :(得分:0)
您可以使用this script/snippet来检测鼠标指针位置并“记住”它。然后使用计时器“setTimeout(...)”检查位置让我们说每一秒并记住那个时间。
如果超过一分钟并且位置没有改变,您可以提醒用户。
答案 6 :(得分:0)
Here's a one-and-done function that can check any element for movement:
csproj
Usage:
<div class="menu-container">
<img src="https://via.placeholder.com/300x150.jpg">
<ul>
<li></li>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</div>
Examples: Make a video player hide the mouse after 5 seconds when idle and fullscreen
.menu-container {
background: red;
display: flex;
align-items: flex-end;
}
ul {
list-style: none;
padding: 0px;
margin: 0px;
}
ul li {
float: left;
}
Chat Room AFK (45 Seconds) (assuming you have a chat box and a send message function):
function mouse (element, delay, callback) {
// Counter Object
element.ms = {};
// Counter Value
element.ms.x = 0;
// Counter Function
element.ms.y = function () {
// Callback Trigger
if ((++element.ms.x) == delay) element.ms.callback(element, element.ms);
};
// Counter Callback
element.ms.callback = callback;
// Function Toggle
element.ms.toggle = function (state) {
// Stop Loop
if ([0, "off"][state]) clearInterval(element.ms.z);
// Create Loop
if ([1, "on"][state]) element.ms.z = setInterval(element.ms.y, 1);
};
// Function Disable
element.ms.remove = function () {
// Delete Counter Object
element.ms = null; return delete element.ms;
};
// Function Trigger
element.onmousemove = function () {
// Reset Counter Value
element.ms.x = -1;
};
// Return
return element.ms;
};