Fix: preventDefault aus pointerdown entfernt (bricht iOS-Safari pointer-sequence)
Diagnose: Lukas' Browser-Logs zeigen Service-Worker-Activity (sw.js?v=2026.5.18-...) und alle Wiki-Assets werden via SW geladen. Wiki selbst registriert keinen SW, der SW kommt von woanders. Echter Fix: preventDefault() in onDown() entfernt. Auf iOS Safari verliert das Event-System die nachfolgenden Pointer-Move-Events wenn preventDefault() auf pointerdown gefeuert wird — das Event wird quasi 'konsumiert' bevor der Browser die Touch-Sequenz weiterverarbeitet. Außerdem: touchstart ist jetzt passive: true (preventDefault dort war illegal und hätte Synthetic-Click ausgelöst die das Modal geschlossen hätte). touchmove und touchend bleiben passive: false damit preventDefault dort funktioniert um Browser-Default-Scroll zu blocken. Lukas' Browser-Console-Log zeigte dass alle Assets via Service-Worker geladen wurden — das deutet auf aggressive Cache-Strategie hin, weshalb ein Hard-Reload mit Cache-Buster URL empfehlenswert ist.
This commit is contained in:
@@ -327,7 +327,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function onDown(e) {
|
function onDown(e) {
|
||||||
e.preventDefault();
|
// Don't preventDefault here — breaks iOS-Safari pointer sequence
|
||||||
const p = getXY(e, canvas);
|
const p = getXY(e, canvas);
|
||||||
isDragging = true;
|
isDragging = true;
|
||||||
moved = false;
|
moved = false;
|
||||||
@@ -387,7 +387,7 @@
|
|||||||
canvas.addEventListener('pointerleave', onUp);
|
canvas.addEventListener('pointerleave', onUp);
|
||||||
|
|
||||||
// Touch events fallback (older iOS Safari 12-)
|
// Touch events fallback (older iOS Safari 12-)
|
||||||
canvas.addEventListener('touchstart', onDown, { passive: false });
|
canvas.addEventListener('touchstart', onDown, { passive: true });
|
||||||
canvas.addEventListener('touchmove', onMove, { passive: false });
|
canvas.addEventListener('touchmove', onMove, { passive: false });
|
||||||
canvas.addEventListener('touchend', onUp, { passive: false });
|
canvas.addEventListener('touchend', onUp, { passive: false });
|
||||||
canvas.addEventListener('touchcancel', onUp, { passive: false });
|
canvas.addEventListener('touchcancel', onUp, { passive: false });
|
||||||
|
|||||||
Reference in New Issue
Block a user