only add move listener for pointer type started with, touch or mouse

This commit is contained in:
Adam Bradley
2014-03-20 14:19:03 -05:00
parent 07c824db8d
commit 97e69f0464

View File

@@ -19,11 +19,14 @@
queueElements[keyId] = ele;
// in XX milliseconds, set the queued elements to active
setTimeout(activateElements, 60);
// add listeners to clear all queued/active elements onMove
document.body.addEventListener('mousemove', clear, false);
document.body.addEventListener('touchmove', clear, false);
if(e.type === 'touchstart') {
document.body.addEventListener('touchmove', clear, false);
setTimeout(activateElements, 85);
} else {
document.body.addEventListener('mousemove', clear, false);
ionic.requestAnimationFrame(activateElements);
}
keyId = (keyId > 19 ? 0 : keyId + 1);
break;
@@ -44,6 +47,15 @@
queueElements = {};
}
function deactivateElements() {
for(var key in activeElements) {
if(activeElements[key]) {
activeElements[key].classList.remove('active');
delete activeElements[key];
}
}
}
function onEnd(e) {
// clear out any active/queued elements after XX milliseconds
setTimeout(clear, 200);
@@ -54,14 +66,7 @@
queueElements = {};
// in the next frame, remove the active class from all active elements
ionic.requestAnimationFrame(function(){
for(var key in activeElements) {
if(activeElements[key]) {
activeElements[key].classList.remove('active');
delete activeElements[key];
}
}
});
ionic.requestAnimationFrame(deactivateElements);
// remove onMove listeners that clear out active elements
document.body.removeEventListener('mousemove', clear);