我正在寻找一个代码片段来获取浏览器窗口中可视区域的高度。
我有这个代码,但是它有点错误,好像身体没有超过窗口的高度然后它变短了。
document.body.clientHeight;
我尝试了其他一些东西,但它们要么返回 NaN 要么返回与上述相同的高度。
有谁知道如何获得浏览窗口的真实高度?
我正在寻找一个代码片段来获取浏览器窗口中可视区域的高度。
我有这个代码,但是它有点错误,好像身体没有超过窗口的高度然后它变短了。
document.body.clientHeight;
我尝试了其他一些东西,但它们要么返回 NaN 要么返回与上述相同的高度。
有谁知道如何获得浏览窗口的真实高度?
你会想要这样的东西,取自http://www.howtocreate.co.uk/tutorials/javascript/browserwindow
function alertSize() {
var myWidth = 0, myHeight = 0;
if( typeof( window.innerWidth ) == 'number' ) {
//Non-IE
myWidth = window.innerWidth;
myHeight = window.innerHeight;
} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
//IE 6+ in 'standards compliant mode'
myWidth = document.documentElement.clientWidth;
myHeight = document.documentElement.clientHeight;
} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
//IE 4 compatible
myWidth = document.body.clientWidth;
myHeight = document.body.clientHeight;
}
window.alert( 'Width = ' + myWidth );
window.alert( 'Height = ' + myHeight );
}
所以这innerHeight
适用于现代浏览器,documentElement.clientHeight
IE,body.clientHeight
弃用/怪癖。
尝试使用 jquery:
window_size = $(window).height();
您可以使用 window.innerHeight
我喜欢这样做的方式是使用三元赋值。
var width = isNaN(window.innerWidth) ? window.clientWidth : window.innerWidth;
var height = isNaN(window.innerHeight) ? window.clientHeight : window.innerHeight;
我可能会指出,如果你在全局上下文中运行它,从那时起你可以使用 window.height 和 window.width。
据我所知,可以在 IE 和其他浏览器上运行(我只在 IE11 上测试过)。
超级干净,如果我没记错的话,效率很高。
有一种比一大堆 if 语句更简单的方法。使用或 (||) 运算符。
function getBrowserDimensions() {
return {
width: (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth),
height: (window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight)
};
}
var browser_dims = getBrowserDimensions();
alert("Width = " + browser_dims.width + "\nHeight = " + browser_dims.height);