Hallo!
Ich habe ein DIV, welches mittels eines Javascript-Scrollbalkens versehen ist. Funktioniert soweit einwandfrei.
Dein Posting zeigt, dass es alles andere als einwandfrei funktioniert.
Auf einem Android-Smartphone und dem iPhone wird der Scrollbalken jedoch nicht eingeblendet. Gescrollt wird über die Standardscrollfunktion.
… wieso ist die Standardscrollfunktion beim iPad deaktiviert und beim iPhone aktiviert?
Die Frage ist eher, warum es im Android-Browser/Chrome und im Mobile Safari auf iPhone funktioniert. Wahrscheinlich weil der Browser im Rahmen der üblichen Fehlerkorrektur und Umformung für Mobilbedienung sieht, was du da anstellst, und versucht, deine auf diesen Geräten eigentlich nicht bedienbare Seite bedienbar zu machen. In welchem Maße Browser das tun, bleibt ihnen überlassen. Die Gründe dafür sind technischer Natur.
JavaScript-Scrollbalken funktionieren so, dass sie normales Scrollen erst einmal kaputtmachen. Mit overflow: hidden wird der Inhalt versteckt und nur durch Änderung des Scrolling-Offsets mit JavaScript sichtbar gemacht. Man kann nicht erwarten, dass ein Browser diesen Trick erkennt, es gezielt ignoriert und einen sinnvollen Fallback anbietet. An sich weist overflow: hidden mit einer festen Höhe nicht darauf hin, dass hier jemand die native Scrollfunktion deaktiviert, um sie im gleichen Atemzug mit JavaScript neu zu erfinden.
Das Verhalten des iPhones und des Android-Smartphones ist für mich in Ordnung.
Und warum nicht auf Desktop-Browsern?
Das Standard-Scrollverhalten ist auf allen Plattformen und Browsern in Ordnung – es besteht kein Grund, es mutwillig kaputtzumachen.
Mathias