【发布时间】:2011-03-30 09:37:42
【问题描述】:
如何在纯javascript 中获取文档的高度和宽度,即不使用jquery。
我知道$(document).height() 和$(document).width(),但我想在javascript 中执行此操作。
我指的是页面的高度和宽度。
【问题讨论】:
标签: javascript jquery javascript javascript
如何在纯javascript 中获取文档的高度和宽度,即不使用jquery。
我知道$(document).height() 和$(document).width(),但我想在javascript 中执行此操作。
我指的是页面的高度和宽度。
【问题讨论】:
标签: javascript jquery javascript javascript
var height = document.body.clientHeight;
var width = document.body.clientWidth;
检查:this article 以获得更好的解释。
【讨论】:
window.innerWidth 解决了这个问题
即使在http://www.howtocreate.co.uk/tutorials/javascript/browserwindow 上给出的最后一个示例也无法在 Quirks 模式下运行。比我想象的更容易找到,这似乎是解决方案(从最新的 jquery 代码中提取):
Math.max(
document.documentElement["clientWidth"],
document.body["scrollWidth"],
document.documentElement["scrollWidth"],
document.body["offsetWidth"],
document.documentElement["offsetWidth"]
);
只需将“高度”替换为“宽度”即可获得高度。
【讨论】:
$(document).width() 相同。也许你追求的是 $(window).width() 之类的东西,在纯 JS 中,它在现代浏览器上只是 document.documentElement["clientWidth"]。
这是一个跨浏览器的解决方案:
var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
【讨论】:
您应该使用getBoundingClientRect,因为它通常跨浏览器工作并在边界矩形上为您提供亚像素精度。
elem.getBoundingClientRect()
【讨论】:
不使用 jQuery 获取文档大小
document.documentElement.clientWidth
document.documentElement.clientHeight
如果您需要屏幕尺寸,请使用它
screen.width
screen.height
【讨论】:
这应该适用于所有浏览器/设备:
function getActualWidth()
{
var actualWidth = window.innerWidth ||
document.documentElement.clientWidth ||
document.body.clientWidth ||
document.body.offsetWidth;
return actualWidth;
}
【讨论】:
你也可以试试:
document.body.offsetHeight
document.body.offsetWidth
【讨论】:
如果要获取页面的全宽,包括溢出,请使用document.body.scrollWidth。
【讨论】:
window 是整个浏览器的应用程序窗口。 document 是显示的实际加载的网页。
window.innerWidth 和 window.innerHeight 会考虑滚动条,这可能不是您想要的。
document.documentElement 是没有顶部滚动条的完整网页。 document.documentElement.clientWidth 返回不带 y 滚动条的文档宽度大小。
document.documentElement.clientHeight 返回不带 x 滚动条的文档高度大小。
【讨论】:
如何很容易地找出文档的宽度和高度?
HTML<span id="hidden_placer" style="position:absolute;right:0;bottom:0;visibility:hidden;"></span>
在 JavaScript 中
var c=document.querySelector('#hidden_placer');
var r=c.getBoundingClientRect();
r.right=document width
r.bottom=document height`
如果需要,您可以在每次调整窗口大小事件时更新它。
【讨论】: