Ekranda ortalanmış div-popup'lar oluşturmak için JQuery tabanlı bir genel javascript iletişim sınıfı oluşturmaya çalışıyorum. Tüm yaygın tarayıcılarda bunu başarmak sade vanilya idi.Meta viewport ve Android ile ilgili sorun
Mobil platformlar için, görünümün konusu ortaya çıkar; Görünen görüntü alanı (ki sizin gördüğünüz gibi sitenin o andaki "izleme pencerenizdir, yakınlaştırılmış olsun veya olmasın) ve mizanpaj görünümünün farkı (alttaki sayfanın boyutları veya başka bir deyişle, CSS görüntü alanı).
Iphone için, ben, ölçeklendirme ortalama ayarlamak için DOM özelliği window.innerWidth ve window.innerHeight kullanmak mümkün olmuştur ve pageXOffset/pageYOffset ile, kaydırma ayarlamak için: o zaman
// Get dialog width/height
var dx = $("#dialog").width();
var dy = $("#dialog").height();
// Get window (layout viewport) width/height
var winW = $(window).width();
var winH = $(window).height();
if (window.innerWidth!=winW) {
// Zoomed in or users browser window width is smaller than layout width
var x = window.pageXOffset+(window.innerWidth-dx)/2;
} else {
// Not zoomed in
var x = window.pageXOffset+(winW-dx)/2;
}
if (window.innerHeight!=winH) {
// Zoomed in or users browser window height is smaller than layout height
var y = window.pageYOffset+(window.innerHeight-dy)/2;
} else {
// Not zoomed in
var y = window.pageYOffset+(winH-dy)/2;
}
Ben sola/yukarıdan x ve y'ye ayarlayarak benim konuşmamı konumlandırın. Bu, çoğu tarayıcıda ve hatta Iphone'da iyi çalışır, ancak Android platformlarında çalışmaz.
Google'ı kullanarak bazı aşırı araştırmalar yaptıktan sonra, Android'in window.innerWidth ve window.innerHeight özellikleriyle ilgili bazı sorunları olduğu görülmektedir (bkz. F örn. http://www.quirksmode.org/mobile/viewports2.html, "Görünen görünüm alanını ölçme" ifadesini arayın).
Android tarayıcılarını tanımlamak için her zaman kullaniciyi kullanmaniz ve pencereyi her zaman görsellestirilmis pencerede üst/sola yerletirecek olan window.pageXOffset/window.pageYOffset konumuna getirmistir. Ancak, bu pek çok nedenden ötürü kötü bir seçenektir, en azından yakınlaştırıldığında kötü görünüyor.
Android'de görünen görünüm alanını hesaplamak için bir yöntem bilen var mı? Ya da bunun için bir çözüm bulmuş olan var mı?
iletişim fare olayı gibi bir kullanıcı olayı için bir cevaptır ... Bu soru üzerine cevap? – Prusse
Evet, genel fikir bu. –
Bazı nesne algılamalarıyla birlikte event.pageX/Y ve event.clientX/Y işlemlerini deneyebilirsiniz. – Prusse