2010-06-09 228 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

相關問題