239 votes

Événement de redimensionnement de fenêtre inter-navigateur - JavaScript / jQuery

Quelle est la méthode correcte (moderne) pour exploiter l'événement de redimensionnement de la fenêtre qui fonctionne dans Firefox ? WebKit et Internet Explorer ?

Et pouvez-vous activer/désactiver les deux barres de défilement ?

366voto

Andrew Hedges Points 11496

JQuery dispose d'un méthode intégrée pour ça :

$(window).resize(function () { /* do something */ });

Dans un souci de réactivité de l'interface utilisateur, vous pouvez envisager d'utiliser un setTimeout pour n'appeler votre code qu'après un certain nombre de millisecondes, comme le montre l'exemple suivant, inspiré de ce :

function doSomething() {
    alert("I'm done resizing for the moment");
};

var resizeTimer;
$(window).resize(function() {
    clearTimeout(resizeTimer);
    resizeTimer = setTimeout(doSomething, 100);
});

48voto

fts Points 381
$(window).bind('resize', function () { 

    alert('resize');

});

42voto

Jondlm Points 845

Voici la façon non jQuery d'exploiter l'événement de redimensionnement :

window.addEventListener('resize', function(event){
  // do stuff here
});

Il fonctionne sur tous les navigateurs modernes. Il fait pas étrangler n'importe quoi pour vous. Voici un exemple en action.

17voto

Désolé d'évoquer un vieux sujet, mais si quelqu'un ne veut pas utiliser jQuery, il peut utiliser ceci :

function foo(){....};
window.onresize=foo;

8voto

Paolo Bergantino Points 199336

Puisque vous êtes ouvert à jQuery, ce plugin semble faire l'affaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X