Ich entwickle eine Webapp und ich habe ein div in einem iFrame, das versteckte, übergelaufene Inhalte enthält, die ich scrollen möchte.
On Safar auf iOS 9, wenn ich -webkit-overflow-scrolling:touch;
zum div hinzufüge (das bereits overflow-y: scroll;
hat, um der Schriftrolle ein flüssiges Gefühl zu geben, bricht sie ab und scrollt überhaupt nicht.
Ich weiß, dass dies ein bekanntes Problem ist, aber ich habe keine Lösungen gefunden, die für mein Szenario relevant sind: Ich habe iFrames, die mehr als nur Daten übertragen, sie enthalten tatsächlich Inhalte für den Benutzer. Orientierung spielt keine Rolle, der Inhalt muss immer scrollbar sein.
Ich bin gerade auf dieses Problem mit dynamischem Inhalt innerhalb eines divs gestoßen, das overflow: auto
und -webkit-overflow-scrolling: touch
hatte.
Schmutzige, hässliche Problemumgehung: Erzwingen Sie, dass der Inhalt größer als das Scroll-Div ist, wenn Sie zu dom hinzugefügt werden. Etwas wie das:
%Vor% Meine Theorie ist, dass Safari versucht (zu tun), einige starke Optimierungen vorzunehmen, wenn -webkit-overflow-scrolling: touch
hinzugefügt wird, und diese nicht mit einigen Arten von dynamischem Inhalt gut spielen.
Ich habe auch auf dieses Problem mit webkit-overflow-scrolling: touch
auf iOS9 gestoßen. Es kann auf einem Gerät oder dem iOS-Simulator wiedergegeben werden. Wie Christopher Camps erwähnt, geschieht dies nur bei dynamischem Inhalt, d. H. Inhalt, der sich von kleiner als der scrollbare Container zu größer als der Container ändert.
Hier ist ein CodePen, der dieses Problem demonstriert , einschließlich Christopher Camps.
Es scheint ein anderer Hack für diesen Safari-Bug zu sein, Javascript zu benutzen, um style="overflow: none"
zu setzen und es sofort wieder auf seinen vorherigen Wert zurückzusetzen.