如果没有使用跨浏览器表达式的滚动条,则无法获取屏幕宽度
Cannot get width of screen without scrollbar using cross-browser expression
我在 JavaScript 中使用以下表达式来获取屏幕宽度,这似乎工作正常,除了它包括滚动时垂直滚动条的宽度。
var wMax = Math.max(document.documentElement.clientWidth, window.innerWidth || 0)
问题:如何修改上述跨浏览器表达式,使其给出不包括垂直滚动条的屏幕宽度?我需要为此使用 JavaScript 而不是 jQuery。
更新 1:
我发现以下跨浏览器表达式给出了不包括垂直滚动条的宽度。
var wMax = Math.min(document.documentElement.clientWidth, window.innerWidth
|| screen.width);
- 我使用了 Math.min 而不是 Math.max,因此宽度较小,宽度取
- 并且在原始表达式中使用了 screen.width 而不是 0,因为在这种情况下,对于所有浏览器,screen.width 始终是所有宽度的最大值,因为它将始终包含滚动条。
screen.width
是显示屏的宽度,而不是不包括滚动条的浏览器窗口。
您应该使用 Math.min
而不是 Math.max
因为没有滚动条的宽度将小于带滚动条的宽度。
此外,如果浏览器无法正常工作,您可以尝试获取正文或 html 标签的宽度,而无需像这样document.documentElement.scrollWidth
clientWidth
。
相关文章:
- 当canvas's的高度超过屏幕's的高度(当滚动条出现时)
- 检测垂直滚动和滚动条宽度,并将宽度更改应用于正文
- 使用JQuery使滚动条为@bottom时DIV的宽度为100%
- 悬停时更改webkit滚动条宽度时出现重绘问题
- jQuery 获取文档宽度和高度,不包括水平/垂直滚动条
- 是否有任何跨浏览器方法可以获取带有滚动条的 DIV 宽度(如果存在)
- 将画布元素的高度和宽度设置为 window.innerHeight/innerWidth 导致滚动条
- 如何在具有固定宽度和水平滚动条的容器中具有高图表图表
- 在不增加滚动条宽度的情况下缩放网页?或指定滚动条宽度
- JS滚动条宽度
- JavaScript:获取窗口宽度减去滚动条宽度
- 如果没有使用跨浏览器表达式的滚动条,则无法获取屏幕宽度
- 如何根据屏幕宽度控制
- 隐藏滚动条,而不影响页面宽度或页面重新呈现抖动
- 没有固定宽度的正文垂直滚动条
- 检查滚动条是否仍被用户抓取
- 如何使用视口宽度单位考虑滚动条
- 花式框不考虑滚动条宽度
- 防止出现滚动条时屏幕闪烁
- 如何可靠地获得屏幕宽度与滚动条