Je souhaite afficher une alarme de prix après 10 secondes d'inactivité de l'utilisateur. À l'heure actuelle, la fenêtre contextuelle n'apparaît qu'au clic. Je veux le remplacer.
J'ai fait de mon mieux mais je n'ai pas pu le faire.
$(document).ready(function () {
var idleInterval = setInterval(inActiveTimer, 1000);
$(this).mousemove(function (e) {
idleTime = 0;
});
$(this).keypress(function (e) {
idleTime = 0;
});
$(".sleepy-close, .sleepy-overlay, .sleepy-wake-up").click(function () {
$(".sleepy-overlay").hide();
clearInterval(idleInterval);
});
});
La dernière partie du code conduit à cliquer sur la fenêtre contextuelle activée. Comment puis-je le remplacer par une fenêtre contextuelle automatique qui se produit après 10 secondes d'inactivité.
4 Réponses :
Pour réinitialiser un setInterval , vous devez l'effacer et le redéfinir. Utilisez le code suivant:
// Instead of idleTime = 0 clearInterval(idleInterval); idleInterval = setInterval(inActiveTimer, 10000);
Consultez cette réponse pour plus d'informations
Essayez ceci.
var idleTime = 0;
$(document).ready(function () {
var idleInterval = setInterval(function(){
if(idleTime >= 10){
$(".sleepy-overlay").hide(); // enabling the popup
idleTime = 0;
}else{
idleTime++;
}
}, 1000);
$(this).mousemove(function (e) {
idleTime = 0;
});
$(this).keypress(function (e) {
idleTime = 0;
});
});
Approche JavaScript pure
Vous pouvez garder un minuteur pendant 10 secondes en utilisant setTimeout et l'effacer chaque fois que leur activité est et le redémarrer immédiatement.
var timeout;
function resetTimer(){
clearTimeout(timeout);
console.log("Clearing timer because of activity");
timeout = setTimeout(function(){
alert("Done with 10 Seconds!");
//Trigger your popup here
}, 10000);
}
document.onmousemove = resetTimer;
document.onkeypress = resetTimer;
//You can add more activity event listeners like click etc.
cela vous aidera à capturer 10 secondes d'inactivité à l'écran, changez le code selon vos besoins.
document.body.innerText = "hello count the seconds";
setIdleTimeout(10000, function() {
document.body.innerText = "Where did you go?";
}, function() {
document.body.innerText = "Welcome back!";
});
function setIdleTimeout(millis, onIdle, onUnidle) {
var timeout = 0;
startTimer();
function startTimer() {
timeout = setTimeout(onExpires, millis);
document.addEventListener("mousemove", onActivity);
document.addEventListener("keypress", onActivity);
}
function onExpires() {
timeout = 0;
onIdle();
}
function onActivity() {
if (timeout) clearTimeout(timeout);
else onUnidle();
//since the mouse is moving, we turn off our event hooks for 1 second
document.removeEventListener("mousemove", onActivity);
document.removeEventListener("keypress", onActivity);
setTimeout(startTimer, 1000);
}
}
Que définissez-vous par «inactivité»? 10 secondes sans événement?
Duplication possible avec stackoverflow .com / questions / 667555 /…
Vérifiez mon code ci-dessous, cela pourrait vous aider mon frère.
renvoyer l'url. il s'agit d'un stackoverflow .com / questions / 667555 /…