2015-09-17 5 views
0

Я возился с некоторым кодом и применял/удалял классы на основе размера окна, и я столкнулся с странной ошибкой. Я подтвердил, что я использую масштабирование по умолчанию (если это имеет значение), и я реплицировал проблему в FF & Chrome.JavaScript неправильный размер окна

У меня есть обработчик события resize, который я использую для контроля значения ширины окна javascript по сравнению с фактическим значением (у меня есть расширение хром, которое показывает окно ширины видового окна при изменении размера, а также bootstrap viewports попадают точно так же, как и в 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 Вт 880 (индекс): 404 тела 880 (индекс): 403 Вт 879 (индекс): 404 тела 879 – user3267755

+0

Вы, возможно, придется установить для того, чтобы это работало. – joelnet

+0

Я только что проверил инспектора из любопытства, и это было правилом: body { margin: 0; } – user3267755

Смежные вопросы