function onDrag(e) {
	if (e instanceof Event) {
		e.preventDefault();
		e.stopPropagation();
		e.stopImmediatePropagation();
	}

	const { clientX, clientY } = getClientPos(e);

	tabLeft = clientX - offsetX;
	tabTop = clientY - offsetY;

	$tabClone.style.transform = `translate3d(${tabLeft}px, ${tabTop}px, 0)`;

	if ($parent.scrollWidth === $parent.clientWidth) return;

	const scroll = getScroll();
	// if can scroll and already scrolling return
	// or if can't scroll and not scrolling return
	if (!!scroll === !!animationFrame) return;
	// if can't scroll and scrolling clear interval
	if (!scroll && animationFrame) {
		cancelAnimationFrame(animationFrame);
		animationFrame = null;
		return;
	}

	scrollContainer();
}
On mouse or touch move
@param {MouseEvent|TouchEvent} e
@returns