Ereignis auslösen, wenn Benutzer inaktiv ist

Avatar of Chris Coyier
Chris Coyier am

Siehe die beiden auskommentierten Zeilen unten. Dort können Sie Code für Aktionen einfügen, die ausgeführt werden sollen, wenn der Benutzer inaktiv wird und wenn er zurückkehrt. Die Inaktivitätszeit wird in der dritten Zeile festgelegt. 1000 = 1 Sekunde.

idleTimer = null;
idleState = false;
idleWait = 2000;

(function ($) {

    $(document).ready(function () {
    
        $('*').bind('mousemove keydown scroll', function () {
        
            clearTimeout(idleTimer);
                    
            if (idleState == true) { 
                
                // Reactivated event
                $("body").append("<p>Welcome Back.</p>");            
            }
            
            idleState = false;
            
            idleTimer = setTimeout(function () { 
                
                // Idle Event
                $("body").append("<p>You've been idle for " + idleWait/1000 + " seconds.</p>");

                idleState = true; }, idleWait);
        });
        
        $("body").trigger("mousemove");
    
    });
}) (jQuery)

Dies funktioniert, indem eine setTimeout-Funktion verwendet wird, die nach Ablauf der angegebenen Sekunden ausgelöst wird. Wenn während dieser Zeit praktisch alles passiert (die Maus bewegt sich, die Seite wird gescrollt oder eine Taste gedrückt), wird der Timeout-Zeitraum zurückgesetzt.