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) {
|
||||
e.preventDefault();
|
||||
// Don't preventDefault here — breaks iOS-Safari pointer sequence
|
||||
const p = getXY(e, canvas);
|
||||
isDragging = true;
|
||||
moved = false;
|
||||
@@ -387,7 +387,7 @@
|
||||
canvas.addEventListener('pointerleave', onUp);
|
||||
|
||||
// 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('touchend', onUp, { passive: false });
|
||||
canvas.addEventListener('touchcancel', onUp, { passive: false });
|
||||
|
||||
Reference in New Issue
Block a user