Fix for the zoom issue (#1326) (#1329)

* #1326: add touchstart event to dpadCenter to prevent zoom behavior

* #1326: improve variable naming for preventElementZoom

* #1326: change selector to "#dpad"

instead of just "#dpadCenter"
This commit is contained in:
flx-sta 2024-05-28 12:02:49 -07:00 committed by GitHub
parent f4acf8bfc3
commit 8824082ceb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 26 additions and 0 deletions

View File

@ -115,3 +115,29 @@ function bindKey(node, key, buttonMap) {
}
});
}
/**
* {@link https://stackoverflow.com/a/39778831/4622620|Source}
*
* Prevent zoom on specified element
* @param {HTMLElement} element
*/
function preventElementZoom(element) {
element.addEventListener("touchstart", (event) => {
const currentTouchTimeStamp = event.timeStamp;
const previousTouchTimeStamp = event.currentTarget.dataset.lastTouchTimeStamp || currentTouchTimeStamp;
const timeStampDifference = currentTouchTimeStamp - previousTouchTimeStamp;
const fingers = event.touches.length;
event.currentTarget.dataset.lastTouchTimeStamp = currentTouchTimeStamp;
if (!timeStampDifference || timeStampDifference > 500 || fingers > 1) {
return;
} // not double-tap
event.preventDefault();
event.target.click();
});
}
const dpadDiv = document.querySelector("#dpad");
preventElementZoom(dpadDiv);