web-dev-qa-db-fra.com

jQuery $ (fenêtre) .resize (); écouteur d'événement équivalent, qui ne se déclenche que sur un changement d'axe spécifié?

Je recherche un écouteur d'événements, ce qui fonctionne comme .resize () de jQuery, mais ne se déclenche que lorsque l'objet redimensionné (en parlant de la fenêtre) est redimensionné sur l'axe x, ou les deux, mais pas uniquement sur l'axe y. - Donc, fondamentalement, il n'écoutera que les événements de redimensionnement de la largeur.

16
Steven Palinkas

Vous pouvez enregistrer la largeur du navigateur sur une fenêtre de chargement en variable. Exemple:

var w = 0;

$( window ).load( function(){

   w = $( window ).width();

});

$( window ).resize( function(){

  if( w != $( window ).width() ){

    //Do something

    w = $( window ).width();

    delete w;

  }

});
38
edonbajrami

Que diriez-vous d'utiliser comme ça?

var w = $(window).width();
$(window).resize(function(){
  if ($(window).width()==w) return; 
  w = $(window).width();
  // ... your code
});
4
Bhojendra Rauniyar

Vous pouvez utiliser:

$(window).resize(function(e) {
console.log(e.old.width + " - " + $(this).width());
console.log(e.old.height + " - " + $(this).height());
if(e.old.width==$(this).width() && e.old.height!=$(this).height()){
//only vertical resize done
}else
{
 //horizontal or horizontal+ vertical resize done
}
});​
1
Milind Anantwar