2010-06-09 186 views
1

在IE浏览器中的window.resize事件并没有做我认为它的确如此。在IE浏览器调整大小与文档大小调整

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

有没有办法分辨这两件事情:查看端口调整大小和文件调整,而无需编写一个复杂的黑客攻击?

回答

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!"); 
}); 
+1

此外,只有在引入滚动条时调整窗口大小时才需要注意。 – mkoryak 2010-06-09 20:13:15

相关问题