Live demo
Like everyone else, use setTimeout and set it to the right amount of time to wait. If there is any activity, just clear the timeout using clearTimeout .
// If theres no activity for 5 seconds do something var activityTimeout = setTimeout(inActive, 5000); function resetActive(){ $(document.body).attr('class', 'active'); clearTimeout(activityTimeout); activityTimeout = setTimeout(inActive, 5000); } // No activity do something. function inActive(){ $(document.body).attr('class', 'inactive'); } // Check for mousemove, could add other events here such as checking for key presses ect. $(document).bind('mousemove', function(){resetActive()});
source share