From 97e69f0464936b93190d9792d3fc71aa032eb642 Mon Sep 17 00:00:00 2001 From: Adam Bradley Date: Thu, 20 Mar 2014 14:19:03 -0500 Subject: [PATCH] only add move listener for pointer type started with, touch or mouse --- js/utils/activator.js | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/js/utils/activator.js b/js/utils/activator.js index 1a7970108f..a9891d0a83 100644 --- a/js/utils/activator.js +++ b/js/utils/activator.js @@ -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);