Çoğunlukla mobil cihazlarda kullanılacak tek sayfalık bir web uygulaması üzerinde çalışıyorum. Özelliklerinden biri, tüm tarayıcı penceresini geçici olarak ele alan bir harita modudur; haritanın dört köşesine bir mesafe ölçeği ve bazı kontroller eklenmiştir. İşte haritanın küçük bir ekran görüntüsü, böylece neden bahsettiğimi anlayabilirsiniz:
Harita, a <div>
ile uygulanır position: fixed
ve dört koordinat da sıfırdır; Ayrıca geçici olarak ayarlanmış <body>
için overflow: hidden
harita kökenli uzak kaydırılmak istenen temel uygulama ekranın durumda idare görünür iken. Haritanın masaüstü tarayıcılarda tam olarak istediğim şekilde çalışması için yeterli. Mobil tarayıcılar ayrıca "width=device-width,user-scalable=no"
, pencerenin görünür alanının görünüm penceresine tam olarak karşılık gelmesi için benzer bir meta meta etiketi vermem gerekiyordu .
Bu uygulamayı ilk kez yazdığımda tüm bunlar birkaç yıl önce güzel çalıştı , ancak iOS Safari'nin bir yerinde ölçeklendirme içeren meta görüntüleme alanı seçeneklerinden herhangi birini onurlandırmayı bıraktı - görünüşe göre çok fazla site etiketi yanlış uyguluyor, bu da okunamayan küçük metinlerle sonuçlanıyor, henüz aşılamaz. Şu anda, haritayı bu tarayıcıda etkinleştirirseniz, sağ ve alt kısımdaki bu düğmeleri kesen hafifçe yakınlaştırılmış bir görünüm elde edersiniz - ve bu konuda hiçbir şey yapamazsınızçünkü tüm dokunuşlar, tarayıcıda kaydırma yapmak yerine harita için yakınlaştırma / kaydırma hareketleri olarak yorumlanır. Harita, bu düğmelerden erişilen özellikler olmadan - ve sağ üstteki düğme olmadan, haritayı bile kapatamazsınız. Tek çıkış yolu kaydedilmemiş verilerin kaybına yol açabilecek sayfayı yeniden yüklemektir.
Harita yer paylaşımının ayrı bir sayfa gibi davranması için history.pushState
/ kullanımını kesinlikle ekleyeceğim onpopstate
. Tarayıcının Geri düğmesini kullanarak harita modundan çıkabilirsiniz - ancak bu, eksik düğmeler nedeniyle işlevsellik kaybının geri kalanını ele almaz.
.requestFullscreen()
Harita yer paylaşımını uygulamak için kullanmayı düşündüm , ancak uygulamanın başka türlü kullanılabileceği her yerde desteklenmiyor. Özellikle, görünüşe göre iPhone'larda hiç çalışmıyor ve iPad'lerde bir durum çubuğu ve içeriğinizin üzerine yerleşen büyük bir 'X' düğmesi alıyorsunuz - mesafe ölçeğim artık okunamayacak. Zaten, ben gerçekten ne istediğini semantik değil - ben tam ihtiyacım pencere , tam ekran.
Modern tarayıcılarda çalışan tam pencereli bir ekranı nasıl edinebilirim? Konuyla ilgili bulabildiğim tüm bilgiler, meta görünüm etiketini kullanmaktan bahsediyor, ancak bahsettiğim gibi artık çalışmıyor.