web-dev-qa-db-fra.com

$ (Window) .resize () déclenchera-t-il un changement d'orientation?

J'utilise ceci pour exécuter du code lorsqu'une fenêtre de navigateur est redimensionnée: $(window).resize(callback)

J'ai également besoin d'exécuter ce code lorsque l'orientation est modifiée dans les téléphones et les tablettes. Est-ce que ce qui précède va déclencher cet événement? 

32
Evans

Certains appareils/navigateurs le font, d'autres pas. Vous devez choisir vos navigateurs et périphériques pris en charge.

Si vous voulez être du côté sécurisé, vous devez utiliser l’événement resize et obtenir/vérifier les tailles qu’il contient Si vous savez que vos appareils souhaités vont avec un simple changement d'orientation:

Solution facile:

// Listen for orientation changes      
window.addEventListener("orientationchange", function() {
    // Announce the new orientation number
    alert(window.orientation);
}, false);

Plus sécurisé/supporté

// Listen for resize changes
window.addEventListener("resize", function() {
    // Get screen size (inner/outerWidth, inner/outerHeight)

}, false);

David Walsh a écrit un bon article sur le redimensionnement et l’événement de changement d’orientation . Plus d’informations sur le changement d’orientation et la taille ici: http://davidwalsh.name/orientation-change

61
Jack Black

la réponse est à mon humble avis: non

mais:

$(window).on('resize orientationchange', function(){
//do stuff
});

devrait vous avoir couvert

attention, cela peut déclencher deux fois selon le navigateur

0
Toskan