2017-05-22 36 views
1

Also im Grunde habe ich gegoogelt und getan, wie dies zu tun, aber es nicht geschafft, es zu arbeiten .. Ich habe eine Variable namens Breite deklariert. Ich möchte, dass mein JS prüft, ob die Breite des Bildschirms kleiner als 660 Pixel ist, dann sollte die Breite 140 Pixel betragen, andernfalls sollte sie 100 Pixel groß sein. Die Variable Breite sollte sich nur ändern, wenn ich das Gerät "Telefon" rotiere, aber es funktioniert nicht? Ich möchte die Variable sollte die Breite des Bildschirms überprüfen, wenn ich das Gerät drehen. Ich habe lange daran gearbeitet, konnte es aber nicht lösen. Ich weiß von Medien-Anfragen, aber ich möchte die Variable in JS aus anderen Gründen ändern ..Ändern Sie den Wert einer Variablen bei Rotation Js

JS

var width = 0; 
    function check() 
    { 

if (window.innerWidth < 660) 
    { 
    width = 140; 
    } 
    else{ 
    width = 100; 
    } 
} 


window.addEventListener("orientationEvent", check); 
document.write(width); 

Antwort

1

Ich würde Ihnen vorschlagen, Blick in window.matchMedia und MediaQueryList.

Beachten Sie jedoch, dass dies die neuesten und experimentellen Funktionen sind und möglicherweise nicht von allen Browsern unterstützt werden.

Nun ist die nächste Sache Aufruf changeWidth Methode, wenn Ansichtsfenster ändert.

var width = 0; 
function changeWidth() { 

    if (window.matchMedia("(min-width: 600px)").matches) { 
     /* the viewport is at least 600 pixels wide */ 
     width = 140; 
    } else { 
     /* the viewport is less than 600 pixels wide */ 
     width = 100; 
    } 

} 

Weitere Dokumentation bezogenen Informationen here.

+0

sollte ich rufen Sie die Funktion changeWidth() in der handleOrientationChange (evt), wenn und sonst? –

+0

Idealerweise Ja. Aber wenn du unabhängig von der Orientierung anrufen willst, entferne if else und rufe dort 'changeWidth' auf. Der obige Code nimmt an, dass die aktuelle Ausrichtung im Hochformatmodus ist, und wenn die Ausrichtung geändert wird, wird die Methode "handleOrientationChange" aufgerufen. – WitVault

+0

Es funktioniert nicht, ich habe changeWidth(); statt, wenn und sonst in handleOrientationChange (evt) {}, aber es ist nicht funktioniert ...:/ –

1

Die Veranstaltung deviceorientation genannt wird, so wird Ihr Code sein:

window.addEventListener('deviceorientation', check); 

Denken Sie daran, dass Ereignisse in Javascript nur Kleinbuchstaben sind.

1

Eigentlich solltest du Liste orientationChange MDN

var width = 0; 
 

 
function check(){ 
 
    if (window.innerWidth < 660) { 
 
    width = 140; 
 
    } else { 
 
    width = 100; 
 
    } 
 
    
 
    // Just for demo 
 
    document.querySelector('body').innerHTML = width; 
 
} 
 

 

 
window.addEventListener("orientationchange", check);

Verwandte Themen