in harness/app-assets/templates/assets/js/components/flipsnap.js [306:367]
Flipsnap.prototype._touchMove = function(event, type) {
var self = this;
if (!self.scrolling || gestureStart) {
return;
}
var pageX = getPage(event, 'pageX');
var pageY = getPage(event, 'pageY');
var distX;
var newX;
if (self.moveReady) {
event.preventDefault();
distX = pageX - self.basePageX;
newX = self.currentX + distX;
if (newX >= 0 || newX < self._maxX) {
newX = Math.round(self.currentX + distX / 3);
}
// When distX is 0, use one previous value.
// For android firefox. When touchend fired, touchmove also
// fired and distX is certainly set to 0.
self.directionX =
distX === 0 ? self.directionX :
distX > 0 ? -1 : 1;
// if they prevent us then stop it
var isPrevent = !self._triggerEvent('fstouchmove', true, true, {
delta: distX,
direction: self.directionX
});
if (isPrevent) {
self._touchAfter({
moved: false,
originalPoint: self.currentPoint,
newPoint: self.currentPoint,
cancelled: true
});
} else {
self._setX(newX);
}
}
else {
// https://github.com/hokaccha/js-flipsnap/pull/36
var triangle = getTriangleSide(self.startPageX, self.startPageY, pageX, pageY);
if (triangle.z > DISTANCE_THRESHOLD) {
if (getAngle(triangle) > ANGLE_THREHOLD) {
event.preventDefault();
self.moveReady = true;
self.element.addEventListener('click', self, true);
}
else {
self.scrolling = false;
}
}
}
self.basePageX = pageX;
};