Ich versuche, die Fensterbreite auf Orientierungsänderung für Android-Geräte mit jquery Funktion $(window).outerWidth(true);
zu berechnen. Diese Berechnung ergibt die richtige Breite für die Orientierungsänderung sowohl für iphone
als auch für ipad
, nicht jedoch für android. Wenn ich die Seite zum ersten Mal im Querformat oder im Hochformat lade, bekomme ich die richtige Breite, aber sobald ich die Ausrichtung nach dem Laden der Seite ändere, bekomme ich die Breite für den Hochformat-Modus wie im Querformat und umgekehrt. Bitte schlagen Sie vor, was passiert, und wie kann ich mit diesem Problem umgehen, so dass ich die richtige Fensterbreite auf Orientierungsänderung in Android-GerätWie bekomme ich die richtige Fensterbreite auf Orientierungsänderung für Android-Geräte sowohl Tablets und Handys
Antwort
Warum nicht einfach das Javascript screen
Objekt verwenden. Sie sollten die Bildschirmabmessungen zu erhalten mit der Lage sein:
screen.height;
screen.width;
Ich benutze '$ (window) .outerWidth (true);' als eine allgemeine für alle Geräte einschließlich Desktop, weil ich auch die Größe des Browsers überprüfen muss. Wenn ich die oben genannte Methode benutze, müsste ich speziell nach Android-Geräten suchen. Wird immer noch Ihre Antwort überprüfen, aber warum die JQuery-Funktion nicht das richtige Ergebnis liefert. Was passiert bei Android-Geräten? – user850234
Dies wird den falschen Wert auf Android 2.3 zurückgeben. –
das ist, warum ich hasse Android – neaumusic
Versuchen window.innerWidth
bzw. window.innerHeight
; Es ist möglich, dass Android nicht über äußere Breite und Höhe;
diesen Beitrag scheint eine Lösung zu haben, die für Sie relevant sein können:
http://forum.jquery.com/topic/orientationchange-event-returns-wrong-values-on-android
ich auch in diesem Problem stecken geblieben war und die beste Lösung zu finden, die auf funktionieren alle platforms.Below ist die Code des 'orientationchange' Ereignisses.
function onOrientationChange(event)
{
setTimeout(function(){
'Enter you code here';
},200);
}
Hoffe, es wird dir und den meisten anderen auch helfen .. Prost.
Danke, das funktioniert. Aber es wird nicht auf Emulator funktionieren. –
var isMobile = {
Android: function() {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i);
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i);
},
webOS: function() {
return navigator.userAgent.match(/webOS/i);
},
any: function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
}
};
var tell_if_mobile;
var mobile_tablet;
if (isMobile.any()) {
tell_if_mobile = true;
} else {
tell_if_mobile = false;
var windowWidth = window.screen.width < window.outerWidth ?
window.screen.width : window.outerWidth;
tell_if_mobile = windowWidth < 800;
mobile_tablet = windowWidth >= 500 ? "Tablet/Phablet Device" : "Desktop View (Mobile)";
}
var mobile_type;
mobile_type = isMobile.Android() ? "Android Device" :
isMobile.BlackBerry() ? "Blackberry Device" :
isMobile.iOS() ? "iOS Device" :
isMobile.Opera() ? "Opera Mobile/Mini" :
isMobile.Windows() ? "IEMobile" :
isMobile.webOS() ? "webOS device" :
tell_if_mobile == true ? mobile_tablet :
"Not a mobile device";
alert(mobile_type); //result
Statt hören orientationChange Ereignis können Sie auf Fenster hören die Größe Veranstaltung, wird es sicherstellen, dass window.innerHeight/outerHeight Eigenschaften aktualisiert wurde.
In meinem Fall wird window.innerWidth nicht aktualisiert, nachdem eine Änderung der Ausrichtung das Größenänderungsereignis ausgelöst hat –
- 1. Benutzerdefinierte ListView anders auf Tablets als Handys
- 2. Iframe Breite zu 100% in Bootstrap für Handys und Tablets
- 3. jquery Click Event für Tablets und Touchscreen-Handys
- 4. Wie mache ich es nur Landschaft für Tablets und nur Portrait für Handys?
- 5. Wie Aktivitäten festlegen, die nur für Handys oder Tablets auf Android sind
- 6. Wie bekomme ich Fensterbreite und -höhe mit YUI?
- 7. Wie bekomme ich die richtige Kodierung?
- 8. Wie kann man ein Modal nur auf Handys und Tablets auslösen?
- 9. Wie man Android-Kleidung Vibrieren in einer App für Handys und Tablets machen?
- 10. Wie bekomme ich die Netzwerkschnittstelle und ihre richtige IPv4-Adresse?
- 11. Wie erhöhe ich die Schriftgröße basierend auf der Fensterbreite?
- 12. Warum bekomme ich nicht die richtige Ausgabe für array.set?
- 13. Wie bekomme ich die richtige Größe von UITableViewCell?
- 14. Wie bekomme ich die richtige Telegramm-Kanal-ID?
- 15. Bluetooth-Profile für Tablets
- 16. Wie bekomme ich Mono, um die richtige 'ToolsVersion' zu verwenden?
- 17. Wie bekomme ich die 7- und 10-Zoll-Tablet-Emulatoren?
- 18. Google Play, Screenshots für Tablets und Bildreihenfolge
- 19. Wie können Sie apks auf Handys und Tablets mit mehreren apk-Unterstützung im Google Play Store beschränken?
- 20. Wie bekomme ich die richtige Zeile von der XP?
- 21. Wie bekomme ich die richtige Bootstrap-Jumbotron-Höhe?
- 22. Wie bekomme ich die richtige Antwort von der API?
- 23. Wie bekomme ich Nokogiri, um die richtige XML-Codierung hinzuzufügen?
- 24. Wie bekomme ich die richtige Datetime von Momentjs
- 25. Wie bekomme ich die richtige Wochennummer über einen Kalender?
- 26. Wie bekomme ich die richtige Validierungsausnahme im Django-Rest Framework?
- 27. Drawbitmaps auf Tablets
- 28. Sizing div basierend auf Fensterbreite
- 29. Wie kann ich ein Landscape-Layout nur für Tablets festlegen?
- 30. Ändern Sie die gesamte Benutzeroberfläche auf Orientierungsänderung
Es gibt ein Problem in Android, wo es manchmal ein paar Sekunden dauert, bis sich die Nummern ändern. Ich bin nicht vertraut mit der Plattform, die Sie verwenden, aber in C++ ist die Lösung, nach einer Orientierungsänderung für einige Frames wiederholt abzufragen. – bitwise