我想检测浏览器的当前大小(宽度和高度)。我知道在jQuery中使用$(document).width
和$(document).height
非常容易,但是我不想将jQuery库的大小添加到项目中,所以我宁愿只使用内置JavaScript。如何用JavaScript以简短、有效的方式完成同样的工作呢?
我想检测浏览器的当前大小(宽度和高度)。我知道在jQuery中使用$(document).width
和$(document).height
非常容易,但是我不想将jQuery库的大小添加到项目中,所以我宁愿只使用内置JavaScript。如何用JavaScript以简短、有效的方式完成同样的工作呢?
// first get the size from the window
// if that didn't work, get it from the body
var size = {
width: window.innerWidth || document.body.clientWidth,
height: window.innerHeight || document.body.clientHeight
}
width: window.innerWidth || document.body.clientWidth
。 - Peter Di Ceccofunction getWindowSize(){
var d= document, root= d.documentElement, body= d.body;
var wid= window.innerWidth || root.clientWidth || body.clientWidth,
hi= window.innerHeight || root.clientHeight || body.clientHeight ;
return [wid,hi]
}
IE浏览器是唯一不使用innerHeight和Width的浏览器。
但是,没有“标准”-只有浏览器实现。
在检查body之前测试html(document.documentElement)clientHeight-如果它不是0,则是“视口”的高度,而body.clientHeight是body的高度-可以大于或小于窗口。
向后兼容模式为根元素返回0,从body返回窗口(视口)高度。
宽度同理。
试一试这个;
<script type="text/javascript">
winwidth=document.all?document.body.clientWidth:window.innerWidth;
winHeight=document.all?document.body.clientHeight:window.innerHeight;
alert(winwidth+","+winHeight);
</script>
document.all
这样的浏览器检查方式,而应该检查clientWidth
是否未定义。 - Joeldocument.all
并不意味着它是否实现document.body.clientHeight
。你应该检查你想要的属性,而不是一个无关的属性。 - Joel这是一个代码示例
function getSize(){
var w=window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
var h=window.innerHeight || document.documentElement.clientHeight ||document.body.clientHeight;
}
window.innerWidth
,用于创建一个自定义的模态弹出窗口。简单来说,用户点击按钮后,弹出窗口会在浏览器中心打开,并且弹出窗口后面有一个透明黑色背景。我的问题是如何找到浏览器的宽度和高度以创建透明背景。
window.innerWidth
很好地找到了宽度,但请记住window.innerWidth和window.innerHeight
不会考虑滚动条,所以如果您的内容超出了可见内容区域,必须从值中减去17px。transBkgd.style.width = (window.innerWidth - 17) + "px";
由于网站内容总是超出可见高度,因此我无法使用window.innerHeight
。如果用户向下滚动,透明背景将在该点结束,这看起来很糟糕。为了使透明背景一直延伸到内容底部,我使用了document.body.clientHeight
。
transBkgd.style.height = document.body.clientHeight + "px";
我在IE、FF和Chrome中测试了弹出窗口,效果都很好。虽然这不太符合原来的问题,但我认为如果其他人在创建自定义模态弹出窗口时遇到同样的问题,这可能会有所帮助。