macOS: Schnelles Durchscrollen der Bilder nicht mehr möglich

T3rm1

Lieutenant
Registriert
Nov. 2005
Beiträge
705
Wenn man ein Bild aus einem Artikel vergrößert und es mehrere existieren, konnte man zuletzt noch ganz bequem per Mausrad in selbst festgelegtem Tempo durchscrollen. Das geht jetzt nicht mehr. Man muss entweder ganz langsam scrollen oder zwischendurch aufhören. Durchgängiges scrollen mittlerer Geschwindigkeit sorgt nun dafür, dass man nur noch ein Bild weiter kommt.
 
Bei solchen Problemen ist es immer ungemein hilfreich, ein Beispiel und den eigenen Browser zu nennen, denn oft gibt es Probleme nicht allgemein für alle, sondern nur speziell in bestimmten Browsern oder Konfigurationen oder nur unter bestimmten Umständen auf bestimmten Seiten.

Ich habe mir gerade eine Galerie gesucht (https://www.computerbase.de/2024-08...rtphones-setzen-auf-neue-kameras-und-viel-ki/) und dort funktioniert es bei mir in Chrome 127 und Firefox 129 auf den ersten Blick wie gehabt.

Welchen Browser nutzt du? Und wo genau hast du das Problem beobachtet?
 
Ist in jedem Artikel so aber aufgefallen ist es mir heute hier: https://www.computerbase.de/2024-08...s-setzen-auf-neue-kameras-und-viel-ki/#bilder

Vivaldi 6.8.3381.53 auf MacOS

Mit dem neusten Firefox habe ich das gleiche Verhalten. Daher eher kein Problem mit dem Browser, sondern mit der Implementierung.

Noch kaputter ist es, wenn man mit dem Touchpad eines MacBooks scrollen möchte. Dann kommt man nur ein Bild weiter. Weder kommt man dann zurück, noch weiter vor. Erst wenn man die Maus um einen Pixel bewegt hat, kann man das Bild wieder wechseln.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Steffen
@Steffen
Ich habe eine Vermutung. Hab zwar die Sourcemaps nicht aber das sieht nach der Ursache aus:
Javascript:
function k() {
            if (/mac/i.test(navigator.userAgent)) {
                var e = Date.now()
                  , t = e - F;
                return F = e,
                t > 200
            }
            return !0
        }

Das wird beim Scroll-Event aufgerufen und nur wenn es true zurückgibt, wird das Bild gewechselt.
 
  • Gefällt mir
Reaktionen: Steffen
Ja, das Problem ist macOS-spezifisch. Um unter macOS überhaupt einen Bildwechsel per Mausrad unterstützen zu können, hatte ich 2015 den folgenden Workaround für das "Inertia Scrolling" von macOS eingebaut (das, wenn ich mich richtig erinnere, ohne den Workaround dazu führte, dass ein kleines bißchen Scrollen gleich dutzende Scroll-Events und somit Bildwechsel getriggert hatte).

Javascript:
function handleWheelEvent(e) {
    if (e.deltaY < 0 || e.deltaX > 0) {
        if (checkWheelThrottle(e)) switchPicture(index - 1);
    } else if (e.deltaY > 0 || e.deltaX < 0) {
        if (checkWheelThrottle(e)) switchPicture(index + 1);
    }

    e.preventDefault();
}

function checkWheelThrottle() {
    // macOS: Inertia Scrolling handeln
    if (/mac/i.test(navigator.userAgent)) {
        var now = Date.now();
        var diff = now - wheelEventTime;
        wheelEventTime = now;
        return diff > 200;
    }

    return true;
}

Die Funktion "checkWheelThrottle" throttled den Bildwechsel unter macOS aus dem genannten Grund auf einmal alle 200 ms. Wir prüfen gleich, ob der Workaround eventuell nicht mehr erforderlich ist.

(Bist du kürzlich auf macOS gewechselt, @T3rm1? Neu ist das 200ms-Throttling nämlich wie ausgeführt eigentlich nicht. :))
 
  • Gefällt mir
Reaktionen: Drahminedum
Steffen schrieb:
(Bist du kürzlich auf macOS gewechselt, @T3rm1? Neu ist das 200ms-Throttling nämlich wie ausgeführt eigentlich nicht. :))
Ist mein Arbeitsrechner. Hauptsächlich besuche ich die Seite sonst unter Windows. Muss ich mich wohl geirrt haben und es war schon immer unter macOS so.
 
Zurück
Oben