2015-09-17 67 views
0

我搞砸了一些代碼,並根據窗口大小應用/刪除類,我遇到了一個奇怪的錯誤。我已確認我處於默認縮放(如果有問題),並且我已在FF & Chrome中複製該問題。JavaScript獲取錯誤的窗口大小

我有一個調整大小事件處理程序,我只是用來監視javascript窗口寬度值與實際值(我有一個Chrome擴展,它顯示窗口&視窗寬度,因爲你正在調整大小,而我的自舉視口命中完全一樣,因爲他們應該在992px,1200px等,所以我知道javascripts值由於某種原因關閉,而不是反之亦然)

由於某種原因,當我調整窗口大小時,窗口寬度顯示在console.log中,總是比實際屏幕尺寸小21px。這是我使用的測試代碼:

var w = 0; 
    $(function() { 
     w = $(window).innerWidth() || $(window).width(); 
    }) 

    $(window).resize(function() { 
     if (w != $(window).innerWidth()) { 
      w = $(window).innerWidth() || $(window).width(); 
      console.log(w); 
     } 
    }); 
+0

是不是因爲你有開發工具打開,使屏幕更短? – tcigrand

+0

我把開發工具放在另一個窗口的另一個窗口上 – user3267755

+6

21px更小 - 滾動條寬度,也許? – sinisake

回答

1

試試這個:

var iw = $('body').innerWidth(); 

jsBin demo

回答:https://stackoverflow.com/a/8340177/504836

+0

我在好奇心中添加了你的代碼片段到我的'console.log'中,並且它記錄與窗口寬度的變量'w'相同的答案。 - 含883 (指數):404體883 (指數):403 W^880 (指數):404體880 (指數):403 W^879 (指數):404體879 – user3267755

+0

您可能需要設置身體邊際爲0這個工作。 – joelnet

+0

我剛剛出於好奇而檢查了檢查員,這是規則:body {0} {0} {0} {0} {0} } – user3267755