Hat overflow:hidden
angewendet <body>
Arbeit auf dem iPhone Safari? Es scheint nicht. Ich kann nicht auf der gesamten Website einen Wrapper erstellen, um dies zu erreichen ...
Kennen Sie die Lösung?
Beispiel: Ich habe eine lange Seite und möchte einfach den Inhalt verbergen, der sich unter der "Falte" befindet, und er sollte auf dem iPhone / iPad funktionieren.
Antworten:
Ich hatte ein ähnliches Problem und stellte fest, dass ich mich
overflow: hidden;
auf beide bewarbhtml
undbody
mein Problem löste.Für iOS 9 müssen Sie möglicherweise Folgendes verwenden: (Danke chaenu!)
quelle
position: relative
.quelle
Einige der hier aufgeführten Lösungen hatten einige seltsame Störungen beim Dehnen des elastischen Bildlaufs. Um das zu beheben, habe ich verwendet:
Quelle: http://www.teamtownend.com/2013/07/ios-prevent-scrolling-on-body/
quelle
position: relative
), jedoch geht die Bildlaufposition nach dem Wiederherstellen des Standardstils (z. B. Schließen des Menüs) verloren.// on menu open // save window pos $('body').attr( 'data-pos', $(window).scrollTop() ) ; // ... // on menu close // scroll to saved window pos $( window ).scrollTop( $('body').attr( 'data-pos' ) );
Hatte dieses Problem heute auf iOS 8 & 9 und es scheint, dass wir jetzt Höhe hinzufügen müssen: 100%;
Also hinzufügen
quelle
Das Kombinieren der Antworten und Kommentare hier und dieser ähnlichen Frage hier hat bei mir funktioniert.
Also als ganze Antwort posten.
Hier erfahren Sie, wie Sie einen Wrapper div um den Inhalt Ihrer Website direkt innerhalb des
<body>
Tags platzieren.Erstellen Sie die Wrapper-Klasse wie folgt.
Ich habe auch die Idee von dieser Antwort hier .
Und diese Antwort hier hat auch einige Denkanstöße. Etwas, das wahrscheinlich sowohl auf Desktops als auch auf Geräten gleich gut funktioniert.
quelle
Es funktioniert im Safari-Browser.
quelle
Für mich das:
War nicht genug, ich habe auf Safari nicht mit iOS gearbeitet. Ich musste auch hinzufügen:
Damit es gut funktioniert. Funktioniert jetzt gut :)
quelle
Ich habe mit
<body>
und gearbeitet<div class="wrapper">
Wenn das Popup geöffnet wird ...
<body>
bekommt eine Höhe von 100% und einen Überlauf: versteckt<div class="wrapper">
erhält Position: relativ; Überlauf: versteckt; Höhe: 100%;Ich verwende JS / jQuery, um die tatsächliche Bildlaufposition der Seite abzurufen und den Wert als Datenattribut für den Body zu speichern
Dann scrolle ich zur Scrollposition im .wrapper DIV (nicht im Fenster)
Hier ist meine Lösung:
JS / jQuery:
CSS:
Es funktioniert gut auf beiden Seiten ... Desktop & Mobile (iOS).
Tipps und Verbesserungen sind willkommen :)
Prost!
quelle
Fügen Sie dies standardmäßig zu Ihrem CSS hinzu
toggleClass diese Klasse, um Seite zu schneiden
Wenn Sie diese Klasse ausschalten, wird in der ersten Zeile die Bildlaufleiste zurückgerufen
quelle
Ja, dies hängt mit neuen Updates in Safari zusammen, die Ihr Layout jetzt beschädigen, wenn Sie den Überlauf verwenden: versteckt, um das Löschen von Divs zu erledigen.
quelle
Es gilt zwar, aber nur für bestimmte Elemente im DOM. Beispielsweise funktioniert es nicht für eine Tabelle, td oder andere Elemente, aber für ein <DIV> -Tag.
z.B:
Nur in iOS 4.3 getestet.
Eine kleine Änderung: Möglicherweise ist es besser, wenn Sie den Überlauf verwenden: Scrollen, damit das Scrollen mit zwei Fingern funktioniert.
quelle
Warum nicht den Inhalt, den Sie nicht in einem Element
display:none
anzeigen möchten, mit einer Klasse umschließen und diese Klasse in einem Stylesheet festlegen, das nur für das iPhone und andere Handheld-Geräte bestimmt ist?quelle
Folgendes habe ich getan: Ich überprüfe die Position des Körpers y, mache den Körper fest und stelle die Oberseite auf das Negativ dieser Position ein. Umgekehrt mache ich den Körper statisch und setze den Bildlauf auf den Wert, den ich zuvor aufgezeichnet habe.
quelle
Ändern Sie einfach die Körpergröße <300px (die Höhe des mobilen Ansichtsfensters im Landraum beträgt ca. 300px bis 500px)
JS
CSS
quelle