2011-09-07 10 views
5

Yönlendirme değiştiğinde, bir mobil tarayıcının pencere yüksekliğini ve genişliğini doğru olarak yakalamaya çalışıyorum, ancak (Android'de test ediyorum) - yönlendirme dinleyicisi tetiklendiğinde ve pencere yüksekliği ve genişliğini yakalamak için işlev çağrıldığında, yeni boyut henüz doğru olarak yansıtılmamıştır, bu yüzden işleri uygun boyutta kaydetmeleri için keyfi bir gecikme yapmak zorunda kalıyorum. Bunu nasıl halledebilirim?android/javascript - window.innerWidth ve window orientation ile ilgili sorun Doğru zamanda ateşleme

window.addEventListener(orientationEvent, function() { 
    setTimeout("setViewport()", 500); 
    //setViewport(); 
}, false); 

function setViewport() { //Called each time orientation changes, including initial orientation 
    viewportW = window.innerWidth; //only reports the accurate window size if the function is called on a delay 
    viewportH = window.innerHeight; 
} 

cevap

0

sen yönünü değiştirip, aynı zamanda değişmiş yönünü teyit etmek window.matchMedia kullanabilirsiniz zaman özellikle sadece bu değerleri değiştirmek istediğiniz durumunda yeniden boyutlandırma olay yerine

window.addEventListener('resize', function() { 
    viewportW = window.innerWidth; 
    viewportH = window.innerHeight; 
}, false); 

kullanın: İşte benim kod:

var portrait=(window.matchMedia("(orientation: portrait)")?true:false); 
İlgili konular