2013-08-16 19 views
5

Ich habe Probleme mit iOS (Safari und Chrome für iOS). Wenn der Benutzer zoomt, scheint die Seite die Größe zu ändern (es löst auch Dutzende von Wiederholungen des Javascript-Resize-Ereignisses aus), was einige meiner Inhalte, die mit Javascript positioniert sind, zunichte macht. Ich kann das nicht beheben, indem ich das resize-Event bind, weil es viel zu oft aufgerufen wird und ich nicht weiß, welches das letzte war.Seitengröße beim Zoomen unter iOS ändern

Ich habe versucht, zahlreiche Optionen auf das Ansichtsfenster ohne Glück (Breite, anfängliche Skala, maximale Skala, minimale Skala) zu setzen.

Ich habe eine feste Position Div mit festen oben, rechts, links und oben. Es gibt mehrere absolute divs darin und sie haben Größen und Positionen in%.

Es scheint, dass die Seite tatsächlich Größen ändert, denn wenn ich nach dem Einzoomen auszoomen sehe ich leere Ränder rechts und unten auf dem Bildschirm. Ich möchte verhindern, dass dies geschieht.

+0

Haben Sie einen Code, den wir uns anschauen können? –

+0

@ Jean-Paul Der Code ist zu groß für mich hier zu posten. Ich kann versuchen, es zu replizieren, aber ich habe nirgends, es zu bewirten (js Geige funktioniert nicht auf iPad). Aber ich bezweifle, dass ich es replizieren kann. Ich hatte gehofft, dass jemand auf dieses Problem schon einmal gestoßen ist, ich glaube es könnte eine zufällige CSS-Regel sein, die das verursacht. Ich benutze jedoch Twitter Bootstrap. – Hoffmann

+0

Sie können HTML-Seiten kostenlos auf Dropbox hosten, legen Sie einfach eine index.html und das zugehörige Javascript/CSS in den öffentlichen Ordner und klicken Sie mit der rechten Maustaste, um die öffentliche URL zu erhalten. – BausTheBig

Antwort

2

Ich habe das Problem gefunden. Die Seite hat sich nicht verändert, die fest positionierten Elemente waren. Es stellt sich heraus, dass die feste Positionierung der Ansicht des Benutzers folgt, wenn er hineinzoomt. Die einzige Lösung, die ich gefunden habe, ist, alle meine feste Positionierung auf absolute Positionierung zu ändern (was in meinem Fall ein Schmerz sein wird).

Ich habe auch festgestellt, dass, da das Resize-Ereignis an das Fenster gebunden ist, die Ansicht sich beim Zoomen ändert und somit die Größenanpassung ausgelöst wird. Das resize-Ereignis does not work auf anderen Elementen (in meinem Fall, was ich tatsächlich brauche, ist die Größe auf dem Körper zu sehen).

+0

Ich bin froh, dass Sie eine Lösung gefunden haben! Allerdings muss ich sagen, dass Sie es sehr schwierig für jemanden gemacht haben zu helfen, ohne einen Code zu veröffentlichen ...Das nächste Mal poste mehr Code für uns, um zu kauen. ;) –

+0

Ja, tut mir leid, es ist nur so, dass der Code wirklich groß ist und ich hatte keine Ahnung, was falsch war. Ich dachte, dass er mit einer zufälligen CSS-Regel zusammenhing und nicht mit der festen Positionierung. Mein CSS war viel zu groß, um es hier zu setzen (und einige davon ergeben keinen Sinn ohne das begleitende Javascript). – Hoffmann

0

Mir ist ein Problem dieser Art nicht bekannt, selbst bei frühen Versionen von iOS Safari/Chrome. In welcher iOS Version bist du? Wenn Sie Zugriff auf OSX haben, haben Sie Safari auf allen iOS-Versionen getestet, die in iOS Simulator verfügbar sind? Bekommst du das gleiche Verhalten auf dem iPad? Hast du andere Browser in kleinen Viewports getestet? Sie erwähnen etwas über Größenänderungsereignisse, die viel zu oft aufgerufen werden.

Ich würde versuchen, eine einfache HTML-Seite mit einfachen Designs zu bekommen und ohne Javascript mit dem folgenden Code arbeiten:

<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1"> 

Der obige Code sollte unmöglich machen Zoomen ... Wenn dass nicht der Fall ist arbeite an einem einfachen Setup, dann gibt es definitiv einen Bug, den ich nicht kenne in der iOS-Version, auf der Sie testen.

Auf der anderen Seite, wenn das funktioniert, gibt es etwas, das das Viewport-Tag in Ihrem Code überschreibt.

+0

Ich habe das Problem bereits gefunden, Sie können meine Antwort überprüfen. Es war nicht mit dem Ansichtsfenster verknüpft. Ich möchte den Zoom nicht deaktivieren. Ich möchte, dass meine fixierten Elemente durch Zoomen nicht beeinflusst werden. Dies scheint jedoch nicht möglich zu sein. – Hoffmann

Verwandte Themen