modularize

This commit is contained in:
unknown 2023-03-13 03:39:02 -05:00
parent bfa14db2cb
commit 40dc0132df
No known key found for this signature in database
GPG Key ID: CA376082283AF69A
2 changed files with 40 additions and 31 deletions

View File

@ -220,37 +220,10 @@ document.addEventListener("DOMContentLoaded", function() {
modal.tabIndex = 0 modal.tabIndex = 0
modal.addEventListener('keydown', modalKeyHandler, true) modal.addEventListener('keydown', modalKeyHandler, true)
let delay = 350//ms // detect gamepads and enable related functionality
window.addEventListener('gamepadconnected', (e) => { let gamepadScript = document.createElement('script');
console.log("Gamepad connected!") gamepadScript.src = 'imageviewerGamepad.js';
const gamepad = e.gamepad; document.body.appendChild(gamepadScript);
setInterval(() => {
const xValue = gamepad.axes[0].toFixed(2);
if (xValue < -0.3) {
modalPrevImage(e);
} else if (xValue > 0.3) {
modalNextImage(e);
}
}, delay);
});
let isScrolling = false;
window.addEventListener('wheel', (e) => {
if (isScrolling) return;
isScrolling = true;
if (e.deltaX <= -0.6) {
modalPrevImage(e);
} else if (e.deltaX >= 0.6) {
modalNextImage(e);
}
setTimeout(() => {
isScrolling = false;
}, delay);
});
const modalControls = document.createElement('div') const modalControls = document.createElement('div')
modalControls.className = 'modalControls gradio-container'; modalControls.className = 'modalControls gradio-container';

View File

@ -0,0 +1,36 @@
let delay = 350//ms
window.addEventListener('gamepadconnected', (e) => {
console.log("Gamepad connected!")
const gamepad = e.gamepad;
setInterval(() => {
const xValue = gamepad.axes[0].toFixed(2);
if (xValue < -0.3) {
modalPrevImage(e);
} else if (xValue > 0.3) {
modalNextImage(e);
}
}, delay);
});
/*
Primarily for vr controller type pointer devices.
I use the wheel event because there's currently no way to do it properly with web xr.
*/
let isScrolling = false;
window.addEventListener('wheel', (e) => {
if (isScrolling) return;
isScrolling = true;
if (e.deltaX <= -0.6) {
modalPrevImage(e);
} else if (e.deltaX >= 0.6) {
modalNextImage(e);
}
setTimeout(() => {
isScrolling = false;
}, delay);
});