coherent-gameface-interaction-manager
Version:
Library for the most common UI interactions
26 lines (24 loc) • 1.15 kB
JavaScript
/**
*
* @param {number} diffX - Difference in X axis
* @param {number} diffY - Difference in Y axis
* @returns {string}
*/
export function getDirection(diffX, diffY) {
const MIN_SWIPE_OFFSET = 200;
if (diffY < 0 && diffX > -MIN_SWIPE_OFFSET && diffX < MIN_SWIPE_OFFSET) return 'top';
if (diffY > 0 && diffX > -MIN_SWIPE_OFFSET && diffX < MIN_SWIPE_OFFSET) return 'bottom';
if (diffX < 0 && diffY > -MIN_SWIPE_OFFSET && diffY < MIN_SWIPE_OFFSET) return 'left';
if (diffX > 0 && diffY > -MIN_SWIPE_OFFSET && diffY < MIN_SWIPE_OFFSET) return 'right';
if (diffX <= -MIN_SWIPE_OFFSET && diffY <= -MIN_SWIPE_OFFSET) return 'top-left';
if (diffX >= MIN_SWIPE_OFFSET && diffY <= -MIN_SWIPE_OFFSET) return 'top-right';
if (diffX <= -MIN_SWIPE_OFFSET && diffY >= MIN_SWIPE_OFFSET) return 'bottom-left';
if (diffX >= MIN_SWIPE_OFFSET && diffY >= MIN_SWIPE_OFFSET) return 'bottom-right';
}
/**
* @param {HTMLElement|string} element
* @returns {HTMLElement}
*/
export function getElement(element) {
return element instanceof HTMLElement ? element : document.querySelector(element);
}