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); });