Ultraleichtes Content‑Script, das die vertikale Scroll‑Geschwindigkeit global verlangsamt. Keine UI, kein Hintergrund‑Service‑Worker, keine Speicherung – nur ein einziges Skript, das früh auf allen Seiten läuft.
- Globales Verlangsamen auf 0.2× (20% der nativen Geschwindigkeit).
- Läuft sehr früh in allen Seiten und Frames (
run_at: document_start,all_frames: true). - Automatische Zielwahl: wählt das nächste vertikal scrollbare Element oder das Dokument (inkl. Shadow DOM).
- Sanfte Korrektur: setzt temporär
scroll-behavior: autoundscroll-snap-type: none; automatische Rücknahme nach ~320 ms. - Bypass: Alt gedrückt halten = nativ scrollen; Pinch‑Zoom (Ctrl) bleibt nativ; horizontales Scrollen per Shift+Wheel bleibt nativ.
- Ressourcen‑schonend: Koalesziert pro Animation‑Frame und quantisiert auf ganze Pixel, um Mikro‑Jitter zu vermeiden.
- Öffne
chrome://extensions(oder Pendant im Chromium‑Browser). - Aktiviere den Entwicklermodus.
- Klicke Entpackte Erweiterung laden und wähle den Ordner dieses Projekts.
- Prüfe, dass die Erweiterung aktiviert ist, und lade betroffene Tabs neu.
- Standard‑Faktor:
FACTOR = 0.2incontent.min.js(≈ 20 % der nativen Geschwindigkeit). - Moduswahl automatisch:
FACTOR < 0.75: aktives Abfangen (passive: false) und Koaleszierung pro RAF, um Zwei‑Schritt‑Jitter zu vermeiden.- sonst: nachträgliche, passive Korrektur.
- Bypass/Shortcuts:
- Alt gedrückt halten: temporär natives Scrollen.
- Ctrl (Pinch‑Zoom): bleibt nativ.
- Shift + Mausrad (horizontal): bleibt nativ und wird nicht beeinflusst.
- Content‑Script auf
<all_urls>, sehr früh (document_start) und in allen Frames (all_frames: true). - Kein Storage, kein Tracking, keine Netzwerkanfragen, kein Remote‑Code.
- Alle Verarbeitung bleibt lokal im Tab. Details: siehe PRIVACY.md.
- Datei:
content.min.js- Zielauswahl mit
closestScrollableY()(inkl. Shadow‑DOM‑Aufstieg). - Passive Korrektur: misst die native Bewegung und addiert
moved * (FACTOR - 1)auf das jeweilige Ziel. - Aktiver Abfang: normalisiert Deltas (
deltaMode), verhindert Standard‑Scrollen, koalesziert prorequestAnimationFrameund quantisiert auf ganze Pixel (inkl. Rest‑Akkumulator). - Temporär
scroll-behavior: autoundscroll-snap-type: nonezur Vermeidung von Snap/Jitter (automatische Rücknahme nach ~320 ms).
- Zielauswahl mit
- Manifest:
manifest.jsoncontent_scriptsauf<all_urls>,run_at: document_start,all_frames: true.
manifest.json– MV3‑Konfiguration (nur Content‑Script)content.min.js– Minimales Scroll‑Tuning (FACTOR = 0.2)PRIVACY.md– Datenschutzerklärungicons/– Icons (16/48/128)
- Kein Build‑Schritt nötig. Dateien ändern und die Erweiterung auf
chrome://extensionsneu laden. - Den Faktor anpassen: In
content.min.jsdie Zeileconst FACTOR = ...editieren und Tabs neu laden.
- Web‑Apps mit eigenem Scrolling (virtuelle Listen, Canvas) können sich anders verhalten; nutze bei Bedarf den Alt‑Bypass.
- An Kanten (Top/Bottom) wird die Korrektur automatisch gedämpft.
- Bei komplett abgefangenen Containern greift die Dokument‑Ebene als Fallback.
- Aktuelle
manifest.json‑Version:1.3.0.
- Probleme oder Vorschläge? Bitte Browser‑Version, Seite/Host, reproduzierbare Schritte und erwartetes vs. tatsächliches Scroll‑Verhalten angeben.
- Maintainer: zerox80
- E‑Mail: rujbin@proton.me