Est-il possible de détecter un changement d'orientation du navigateur sur l'iPad ou Galaxy Tab en utilisant javascript? Je pense que c'est possible en utilisant les requêtes media css.Détecter un changement d'orientation en utilisant javascript
Répondre
MISE À JOUR:
Vous pouvez consulter
jQuery mobile orientationchange
ou simple JS un:
window.addEventListener("orientationchange", function() {
alert(window.orientation);
}, false);
Older réponse
http://www.nczonline.net/blog/2010/04/06/ipad-web-development-tips/
Safari sur l'iPad prend en charge la propriété window.orientation, si nécessaire, vous pouvez l'utiliser pour déterminer si l'utilisateur est en mode horizontal ou vertical. Pour rappel de cette fonctionnalité:
window.orientation is 0 when being held vertically
window.orientation is 90 when rotated 90 degrees to the left (horizontal)
window.orientation is -90 when rotated 90 degrees to the right (horizontal)
Il y a aussi l'événement orientationChange qui se déclenche sur l'objet de la fenêtre lorsque l'appareil est mis en rotation.
Vous pouvez également utiliser des requêtes de médias CSS pour déterminer si l'iPad est maintenu en position verticale ou horizontale, tels que:
<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css">
<link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css">
<script type="text/javascript">
var updateLayout = function() {
if (window.innerWidth != currentWidth) {
currentWidth = window.innerWidth;
var orient = (currentWidth == 320) ? "profile" : "landscape";
document.body.setAttribute("orient", orient);
window.scrollTo(0, 1);
}
};
iPhone.DomLoad(updateLayout);
setInterval(updateLayout, 400);
</script>
window.orientation est ce que vous cherchez. il y a aussi un événement onOrientationChange fonctionne pour Android, iPhone et, je suis la plupart du temps que, pour l'ipad
Ajouter au @ mplungjan réponse, j'ai trouvé de meilleurs résultats en utilisant le webkit "natif" (je ne sais pas comment l'appeler) événement, 'deviceorientation' .
Dans le Mozilla Developer network ils ont une bonne explication sur la normalisation entre webkit et Gecko qui m'a aidé à résoudre ce problème.
Vous pouvez utiliser l'événement orientationChange comme ceci:
window.addEventListener('orientationchange', function(){
/* update layout per new orientation */
});
Cet événement a déjà été discuté. –
Vous pouvez utiliser mediaMatch pour évaluer les requêtes de médias CSS, par exemple
window
.matchMedia('(orientation: portrait)')
.addListener(function (m) {
if (m.matches) {
// portrait
} else {
// landscape
}
});
incendies de requête média CSS avant le orientationchange
. Si vous souhaitez capturer la fin de l'événement (lorsque la rotation est terminée), voir mobile viewport height after orientation change.
Un extrait facile à utiliser:
function doOnOrientationChange()
{
switch(window.orientation)
{
case -90:
case 90:
// alert('landscape');
$('#portrait').css({display:'none'});
$('#landscape').css({display:'block'});
break;
default:
// alert('portrait');
$('#portrait').css({display:'block'});
$('#landscape').css({display:'none'});
break;
}
}
window.addEventListener('orientationchange', doOnOrientationChange);
// First launch
doOnOrientationChange();
De "Cross-device, cross-browser portrait-landscape detection"
Il s'agit de découvrir si un appareil mobile est en mode portrait ou paysage; Vous n'avez pas besoin de vous préoccuper de son orientation. Pour autant que vous sachiez, si vous tenez votre iPad à l'envers, c'est en mode portrait.
$(window).bind("resize", function(){
screenOrientation = ($(window).width() > $(window).height())? 90 : 0;
});
90 signifie paysage, 0 signifie portrait, navigateur croisé, appareil croisé. L'événement window.onresize est disponible partout, et il est toujours allumé au bon moment; jamais trop tôt, jamais trop tard. En fait, la taille de l'écran est toujours aussi précise.
Que diriez-vous de la situation où l'utilisateur tient son téléphone dans une orientation portrait, puis ouvre un clavier virtuel qui fait que la largeur devient plus grande que la hauteur sur les petits écrans? L'utilisateur tient toujours le téléphone dans la même orientation portrait, mais votre approche peut donner un faux résultat positif du changement d'orientation. –
- 1. Javascript Détecter un changement href
- 2. JavaScript ne pas détecter de changement
- 3. Changement d'images d'éléments en utilisant JavaScript
- 4. chaîne de changement en utilisant JavaScript
- 5. détecter microsoft office version en utilisant javascript
- 6. Dropbox détecter le changement de fichier en utilisant delta IOS
- 7. Comment détecter un navigateur en utilisant javascript dans facebook
- 8. changement jQuery détecter la valeur
- 9. détecter un changement dans une propriété composée
- 10. Existe-t-il un moyen de détecter un changement de noeud DOM en Javascript?
- 11. détecter changement sur navigator.online
- 12. Changement de classe en actif en utilisant JavaScript onClick
- 13. changement Détection dans un Javascript Object
- 14. Détecter ASP.Net PostBack asynchrone en utilisant PageRequestManager Événements en JavaScript
- 15. Comment détecter un changement de sélection CListCtrl?
- 16. détecter un changement d'objet de domaine
- 17. Javascript checkbox changement d'état
- 18. AS3 - Puis-je détecter un changement de valeur d'une variable en utilisant addEventListener?
- 19. détecter le changement à window.name
- 20. en utilisant captcha avec changement de focus javascript
- 21. Forcer le changement de l'encodage du navigateur en utilisant JavaScript?
- 22. Détecter un caractère chinois en utilisant perl?
- 23. comment détecter le changement d'emplacement
- 24. Changement du href d'un lien de lien en utilisant javascript
- 25. Détecter le geste de balayage en utilisant javascript
- 26. Détecter si l'application Flash est correctement chargée en utilisant Javascript?
- 27. détecter périphérique en utilisant modernizr
- 28. Détecter l'heure sur YouTube puis afficher DIV? en utilisant javascript
- 29. détecter java/jre sur IE6 en utilisant javascript
- 30. Comment détecter les URL externes en utilisant Javascript
Il semble qu'à partir d'iOS 4.0, la version UIWebView ne supporte plus la propriété Javascript window.orientation, ou du moins je l'ai expérimenté. Ainsi, le seul moyen que j'ai trouvé pour notifier le Javascript interne d'UIWebView sur les changements d'orientation était d'appeler [webView stringByEvaluatingJavaScriptFromString: [NSString stringWithFormat: @ "didRotateTo ('% @')", orient]]; où webView est mon UIWebView et orient est une représentation sous forme de chaîne de l'orientation actuelle du périphérique. didRotateTo est une fonction javascript qui accepte un paramètre (l'orientation en tant que chaîne) –
Wrt to polling, il y a un événement 'orientationchange' qui est déclenché lorsque l'orientation du périphérique change. – alex