Erkennen, ob der Adressleiste angezeigt wird im iPhone-browser
Ich versuche zu erkennen, in eine zukunftssichere und device-unabhängigen Weg, wenn die Adressleiste in der iPhone-browser zeigt. Dies ist die Symbolleiste, die im oberen Bereich angezeigt, um die URL. Es kann ausgeblendet werden, indem Sie aufrufen:
window.scrollTo(0, 0)
Was ich tun möchte, ist zu erkennen, wenn Sie darauf zeigen (und damit die Reduzierung der verfügbaren Darstellungs-Raum) und einen timer einstellen, um es zu verbergen, wieder eine Sekunde oder so später. Alle häufiger als das, und es wird sehr ärgerlich, da die Benutzer nicht in der Lage sein, die Adresse der bar.
Habe ich versucht die Kontrolle window.pageYOffset
leider gibt null zurück, wenn ein beliebiger Teil der url-Leiste sichtbar ist.
Ich nicht codieren alle Maßen, die auf dem iPhone und überprüfen Sie diese gegen die aktuellen viewport-Größe. Es ist zu zerbrechlich.
Jemand weiß hier eine Lösung?
- Ich bin mir nicht klar, was das problem war. Erkennen, die beim laden der Seite, oder schauen Sie bei setInterval und nach Zeitraum X zu verstecken, aber Sie geben dem Anwender genug Zeit, um eine neue URL eingeben, wenn Sie wählen? Bitte erläutern Sie.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Fenster.innerHeight Eigenschaft ist das, was du bist suchen für. Dies ist die Höhe des tatsächlichen Inhalts auf dem Bildschirm. Es ist deutlich weniger, wenn die Symbolleiste an der Oberseite sichtbar ist, weil es weniger Platz für Inhalte. Es gibt ein kleines problem, dass ich kann nicht scheinen, um herauszufinden, auf meinem iPhone 4 - Fenster.innerHeight auch mal wieder 3 Pixel weniger auf eine bestimmte scroll-Positionen auf dem Bildschirm.
Ich habe ein Beispiel für Sie, dass Sie nicht mehr oder weniger, was Sie gefragt haben, es sollte zumindest für den Einstieg:
http://jsfiddle.net/rUSEb/show/light (testen Sie es auf Ihrem iphone).
position: fixed;
also ich glaube nicht, dass das eigentlich direkt erkennen das Vorhandensein der Adressleiste.