If you are looking for a way to imitate the “mouseout” event, I made this implementation within the “touchmove”- and “touchend” event.
element.addEventListener("touchmove", (e) => {
if (this.isTouchEventWithElement(e)) return;
// PERFORM MOUSEOUT ACTION
});
element.addEventListener("touchend", (e) => {
if (this.isTouchEventWithElement(e)) return;
// PERFORM MOUSEOUT ACTION
});
isTouchEventWithElement(e: TouchEvent): boolean {
const element = this.getElement();
const item = e.changedTouches.item(0);
if (element === null || item === null) return false;
return element.getBoundingClientRect().right > item.clientX &&
element.getBoundingClientRect().left < item.clientX &&
element.getBoundingClientRect().top < item.clientY &&
element.getBoundingClientRect().bottom > item.clientY;
}
Hope it helps.
Inspired by: http://www.javascriptkit.com/javatutors/touchevents.shtml