jQuery $(window).resize();等效事件监听器,只在指定轴上触发更改?

时间:2014-01-08 08:45:49

标签: javascript events javascript-events jquery

我正在寻找一个事件监听器,它的作用类似于jQuery的.resize(),但只有当调整大小的对象(谈论窗口)在x轴或两者中调整大小时才会触发,但不会仅在y轴上调整。 - 所以基本上它只会监听宽度的调整大小事件。

3 个答案:

答案 0 :(得分:36)

您可以在窗口加载变量中保存浏览器的宽度。例如:

var w = 0;

$( window ).load( function(){

   w = $( window ).width();

});

$( window ).resize( function(){

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

    //Do something

    w = $( window ).width();

    delete w;

  }

});

答案 1 :(得分:3)

这样使用怎么样?

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

答案 2 :(得分:1)

您可以使用:

$(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
}
});​