Javascript window.innerWidth包括滚动条宽度

Javascript window.innerWidth包括滚动条宽度,javascript,Javascript,我试图计算视口的宽度,但不包括滚动条的宽度。有人这样说window.innerWidth可以做到这一点,但它考虑了滚动条 我尝试使用document.body.clientWidth但是当窗口水平滚动时,这失败了 即使document.body.clientWidth>window.innerWidth,我也需要获取窗口的宽度,但不需要滚动条的宽度 有人知道吗?使用jquery$(window.width()将返回您想要的内容 如果您的文档具有水平滚动$(document).width()将返回

我试图计算视口的宽度,但不包括滚动条的宽度。有人这样说
window.innerWidth
可以做到这一点,但它考虑了滚动条

我尝试使用
document.body.clientWidth
但是当窗口水平滚动时,这失败了

即使
document.body.clientWidth>window.innerWidth
,我也需要获取窗口的宽度,但不需要滚动条的宽度

有人知道吗?

使用jquery
$(window.width()
将返回您想要的内容

如果您的文档具有水平滚动
$(document).width()
将返回文档宽度,而不是窗口宽度

编辑: 使用纯javascript,您可以使用
documentElement
从主窗口提取文档,此代码的工作原理相同:

document.documentElement.clientWidth

你试过这个方法吗?这正是我正在做的,但更多aesthetic@Oriol,它不是重复的,因为没有我需要的。在这个问题上,OP对包含/排除滚动条的宽度/高度不感兴趣,但我感兴趣@Victor可能是对的,但多个答案解决了您的问题。嗯,滚动条是内容的一部分,因此将其考虑到视口是没有错误的。您可以尝试设置滚动条的样式,以便准确了解其宽度。有一些插件可以帮助实现这一点,如iScroll.js、nicesroll等。这些插件可以制作一个类似于iPhone的整洁的滚动条,当你不滚动或移动鼠标时,滚动条会悬停在内容上,然后消失。这在jQuery中是如何实现的?我想使用jQueryyou可以包含来自Google或Microsoft的jquery,然后使用var mywidth=$(document)。width()将在“mywidth”中设置所需内容。这是如何实现jquery的:这可以在没有jquery的情况下完成吗?是的。我通过添加纯JavaScript代码更新了我的答案@框架