Ich baue ein Webportal auf, das auf mehreren Plattformen funktionsfähig und hübsch sein muss. Eine der Plattformen ist IOS Safari, und hier bin ich auf ein Problem gestoßen. In meinem Code richte ich zwei schwebende Schaltflächen am unteren Rand eines Div mit einer Breite und Höhe von 100% aus. Dies alles funktioniert einwandfrei und meine Schaltflächen werden genau so angezeigt, wie sie am unteren Rand der Seite angezeigt werden sollen. Wenn ich jedoch auf die Schaltflächen klicke, wechselt die kompakte Ansicht von der mobilen Safari zur Vollansicht und meine Schaltflächen sind hinter der unteren Navigationsleiste versteckt!
Ist es normal, dass Safari Mobile das erweiterte Menü anzeigt, wenn der Benutzer auf die unteren 10% des Bildschirms tippt? Wie kann ich das vermeiden?
In diesem GIF sehen Sie das Problem im IOS-Simulator:
Wie Sie sehen können, tritt das Problem nur auf, wenn sich eine Schaltfläche in den unteren 10% der Ansicht befindet. Dies ist nur eine normale Schaltfläche. Mein Code wurde von mehreren Entwicklern dreifach überprüft und enthält keine Fehler.
quelle
Antworten:
Dies ist in Mobile Safari normal. Wenn Sie unten auf tippen, werden die verschiedenen Browseroptionen angezeigt und die Webseite entsprechend nach oben gescrollt. Die Webseitenfunktionalität bleibt jedoch unverändert, sodass der Benutzer nach dem Scrollen weiterhin auf die Schaltfläche tippen kann, um auf die vorhandenen Funktionen zuzugreifen.
quelle
Ich glaube, ich habe vielleicht eine Antwort gefunden. Stellen Sie Ihren Inhalt auf die folgenden Stile ein:
height: 100%
(Ermöglicht es Inhalten, das Ansichtsfenster zu füllen und über den unteren Bereich hinauszugehen.)overflow-y: scroll
(Ermöglicht das Scrollen unter dem Ansichtsfenster; der Standardwert istvisible
)-webkit-overflow-scrolling: touch
(um das Bildlaufverhalten zu glätten)wird angezeigt, um das iOS-Menü in Safari zu zwingen, immer angezeigt zu werden. Auf diese Weise funktionieren Tastenklicks tatsächlich, anstatt das Safari-Menü zu öffnen. Hoffe das hilft!
quelle
overflow-y: scroll
in ihrem Hauptinhaltsbereich tolerieren . Dieser Hack hat Nebenwirkungen, die sich auf alle untergeordneten Elemente auswirken. Genauer gesagt wirken sich diese CSS-Eigenschaften direkt auf alle untergeordneten Elemente aus, und das Anzeigen des Safari-Menüs ist eigentlich der Nebeneffekt.height: 100%
angeben. Für ein Unternehmen, das viel Geld mit mobilen Geräten verdient, ist das mobile Web-Erlebnis schrecklich.