code: function(evt) {
          evt.preventDefault();
          evt.stopPropagation();
  
          //Detect if finger moves too much for it to be considered a tap
          var {x1, y1, time} = tapStart;
          var x2 = evt.touches[0].pageX;
          var y2 = evt.touches[0].pageY;
          var dx = x2 - x1;
          var dy = y2 - y1;
          tapDiff = Math.sqrt(dx * dx + dy * dy);
  
          //Detect if it's moved too little in too short a time to be considered a pan
          if((new Date() - tapStart.timeStart < tapDuration) && tapDiff <= 2){
            return;
          }
  
          if (debug) { timedLog("panmove"); }
          if (!transform.x1 && !transform.y1) {
            return;
          }
          if (evt.touches && evt.touches.length > 1) {
            return handlers.handleTouchRepositioning(evt);
          }
          if (debug) { timedLog("panmove - continued"); }
  
          var x = evt.clientX || evt.touches[0].pageX,
            y = evt.clientY || evt.touches[0].pageY;
  
          transform.modified = true;
          positionable.handleTranslation(x - transform.x1 + mark.x, y - transform.y1 + mark.y);
        }
docs: pan/move functionality relies on a single touch event being active.