在IE中,view-port resize vs document resize

时间:2010-06-09 18:45:54

标签: jquery internet-explorer javascript-events

IE中的

window.resize事件并没有做我认为的事情。

我认为它只在物理窗口/视图端口改变大小时触发(例如,用户在浏览器窗口中命中最大化),但如果我更改文档大小,引入滚动条也会触发它。

有没有什么方法可以区分这两个方面:查看端口调整大小,文档调整大小而无需编写精心设计的黑客文件?

1 个答案:

答案 0 :(得分:0)

没有接受者?这里是黑客(未经测试 - 但想法是正确的)

function viewPortResize(fn, context){
  context = context || window;
  var $window = $(window);
  var winWidth = $window.width();
  var winHeight = $window.height();

  return function(e){
    var oldW = winWidth;
    var oldH = winHeight;
    winWidth = $window.width();
    winHeight = $window.height();
    if (winWidth != oldW || winHeight != oldH){
      fn.apply(context, [e]);
    }
  }
}


//use:
$(window).resize(viewPortResize(function(e){
    alert("this only happens when viewport is resized!");
});