2016-04-15 17 views
5

Cihazın ekran yönünü tespit etmenin bir çok yolunu gördüm.JavaScript ile cihaz yönlendirmesi nasıl algılanır?

function getOrientation(){ 
    var orientation = window.innerWidth > window.innerHeight ? "Landscape" : "Primary"; 
    return orientation; 
} 

Ama benim kontrol etmek istiyorsanız bir olay dinleyicisiyle yanı ekran yönündeki değiştirir? Bu kodu denedim ama benim için çalışmıyor.

function doOnOrientationChange() 
    { 
    switch(window.orientation) 
    { 
     case -90: 
     case 90: 
     alert('landscape'); 
     break; 
     default: 
     alert('portrait'); 
     break; 
    } 
    } 

    window.addEventListener('orientationchange', doOnOrientationChange); 

    // Initial execution if needed 
    doOnOrientationChange(); 

(Ben Chrome'un cihaz emülatörü kullanıyorum) Bu cihaz yönünü algılamaz ve dinleyici benim için kaydetmez. Bunu yapmak için

cevap

12

iki yolu: Screen API belgelendirmesi olarak Öncelikle

, kullanan> = Krom 38, Firefox ve IE 11, ekran nesnesi sadece yönünü görmek değil, aynı zamanda kayıt için kullanılabilir cihaz yönelimi her değiştiğinde dinleyici değişir.

screen.orientation.type açıkça size yönelimleri ne bildireceğiz ve dinleyici için aşağıdaki gibi basit bir şey kullanabilirsiniz:

screen.orientation.onchange = function(){ 
    // logs 'portrait' or 'landscape' 
    console.log(screen.orientation.type.match(/\w+/)[0]); 
}; 

İkincisi, Ekran ile uyumlu değildir Safari gibi diğer tarayıcılar ile uyumluluk için, this post, pencere yeniden boyutlandırmasında innerWidth ve innerHeight'ı kullanmaya devam edebileceğinizi gösterir.

function getOrientation(){ 
    var orientation = window.innerWidth > window.innerHeight ? "Landscape" : "Portrait"; 
    return orientation; 
} 

window.onresize = function(){ getOrientation(); } 
+0

Bu çözümün yalnızca akıllı telefonlarda Chrome> = 39 ve Firefox Mobile için çalıştığını belirtmek gerekir. OP, "ios" etiketini ekledi ve Screen API bunun için bir çözüm değil. – Popatop15

İlgili konular