Выполнение действия в состоянии холостого хода в JavaScript
-
11-10-2019 - |
Вопрос
Я пытаюсь настроить сценарий на веб -странице, которая выполняет следующее: если мышь неактивна в течение определенного времени (скажем, пять секунд), выполните действие (скажем, скрывая элемент); Затем, если мышь перемещалась, выполните действие (скажем, не укрывая элемент).
Я хочу каким -то способом выполнить действие по бездействии мыши пользователей (не обязательно бездействие клавиатуры).
Спасибо за вашу помощь.
Решение
Если вы используете jQuery:
(function() {
var timeout;
var isHidden = false;
$(document).mousemove(function() {
if (timeout) {
window.clearTimeout(timeout);
}
timeout = window.setTimeout(function() {
if (!isHidden) {
//hide the element here
isHidden = true;
}
}, 5000);
if (isHidden) {
//show the element here
isHidden = false;
}
});
})();
Версия без jQuery:
(function() {
var timeout;
var isHidden = false;
function hideOnIdle() {
if (timeout) {
window.clearTimeout(timeout);
}
timeout = window.setTimeout(function() {
if (!isHidden) {
//hide the element here
isHidden = true;
}
}, 5000);
if (isHidden) {
//show the element here
isHidden = false;
}
}
if (document.addEventListener) {
document.addEventListener("mousemove", hideOnIdle);
} else {
document.attachEvent("onmousemove", hideOnIdle);
}
})();
Не связан с StackOverflow