我正在使用Chrome开发移动网站。在这个网站上,我根据屏幕的宽度做了很多。我遇到了一个问题,当我尝试通过
检索宽度时window.innerWidth
或
$(window).width()
与我在调试器中看到的实际宽度略有不同
例如我删除了所有css和内容运行此代码
<html style-"width: 100vw"> <!-- 100% has the save effect -->
<head>
</head>
<body id="body" style-"width: 100vw">
</body>
</html>
innerWidth属性为375(模拟iphone6)但实际宽度为375.33
这可能看起来像是一个很小的区别,但是我有一个应用程序的侧滚动部分,经过几次滚动(按设备宽度),非常明显的是,对齐关闭了几个像素,每次滚动都会变得更糟。我只能将此归因于我一次滚动375px的事实,但我需要滚动到375.33px(当我手动考虑其正常工作的差异时)
更糟糕的是,我在不同的机器上尝试了完全相同的代码并且测量结果是正确的。
我在这里摸不着头脑,感谢任何帮助
答案 0 :(得分:2)
window.innerWidth
用于查找
浏览器窗口视口的宽度(以像素为单位),包括(如果已渲染)垂直滚动条。
(Source)
<小时/>
$(window).width()
是一种的方法
//返回浏览器视口的宽度
(Source)
<小时/> 后者不包括滚动条的宽度作为视口宽度的一部分(我在chrome的开发工具中使用了此页面并得到window.innerWidth = 1920
和$(window).width() = 1899
,差异为21px
滚动条)。我的猜测是,由于某种原因,移动网站上的滚动条会额外0.33px
。我会检查你展示/样式化它的方式,因为这可能会增加宽度并导致0.33px
的差异。希望这有点帮助,如果你可以发布任何对调试更有帮助的代码。