Reputation: 26281
How can a function be executed whenever this is any user activity such as moving or scrolling the mouse or pressing a key? I am thinking something similar to the following, however, likely other events will be required. Ideally, jQuery would not be required.
document.body.addEventListener('mouseover', resetTimer);
window.addEventListener('scroll', resetTimer);
document.addEventListener('keydown', resetTimer);
The purpose is for implementing a JavaScript based page rotator that will start after X seconds of user inactivity.
Upvotes: 4
Views: 4797
Reputation: 4731
There are several events you could listen to, I believe these should cover the most:
mousedown
to capture click eventsmousemove
to capture cursor movementstouchstart
to capture taps (on touchscreens)keydown
to capture key eventsscroll
to capture scrollingSee demo code below.
document.addEventListener('mousedown', viewEvent);
document.addEventListener('mousemove', viewEvent);
document.addEventListener('touchstart', viewEvent);
document.addEventListener('scroll', viewEvent);
document.addEventListener('keydown', viewEvent);
function viewEvent(evt){
document.getElementById('viewEvent').innerHTML = evt.type;
}
#viewEvent{
position: fixed;
padding: .2em;
background: #ccc;
}
<div id="viewEvent"></div>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
dummy text<br>
Upvotes: 4