这是此问题的后续问题:Get the device width in javascript。
我想要做的是在JavaScript中获得@media (max-width: 600px)
的等效CSS。
accepted answer说要执行以下操作:
var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
那还正确吗?它适用于所有设备吗?
如果正确,检查
(window.innerWidth > 0)
有什么意义?我想知道它是否仍然有效。如果您查看答案的最后评论(有6票赞成票),则会显示:
最佳答案
从您的问题看来,您正在询问以下内容(这是一个简单的答案,但我认为这是您要的内容):
var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
等效于:
var width;
if (window.innerWidth > 0)
{
width = window.innerWidth;
}
else
{
width = screen.width;
}
要么:
var width = screen.width;
if (window.innerWidth > 0)
{
width = window.innerWidth;
}
他们都做同样的事情...
从下面的评论中,您可能需要以下jsFiddle:
(显示“window.innerWidth”是您想要的(包含元素的大小)-但某些浏览器不支持它-因此“screen.width”成为后备内容,可能不正确,因为它是整个宽度窗口,而不仅仅是包含元素)
var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;
$('#divOutput').html('The width is:' + width + 'px <br>' +
'window.innerWidth = ' + window.innerWidth + 'px & <br>' +
'screen.width = ' + screen.width + 'px');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="divOutput"></div>
如果那没有帮助,也许看看:
window.innerWidth can't work on IE7. How to fix via JS and jQuery?