我正在尝试确定当前浏览器窗口的实际viewPORT大小。我试过了:
全部返回整页尺寸,而不是观看区域。
我想要最终实现的是强制弹出菜单出现在屏幕上(在视口中)。现在,当它显示时,它可能显示在滚动下方,用户对此不满意。我知道他们点击的地方的x,y。我只需要将它与观看区域的大小(弹出窗口的大小)进行比较,看它是否会出现在屏幕外。
应该注意的是,页面显示在IFRAME中,所以如果我需要上升一个级别来获得正确的值,我可以这样做。
答案 0 :(得分:2)
- window.innerHeight / innerWidth
明确地确实为您提供了视口大小(在这种情况下,iframe中的大小),但它在IE上不可用。
- document.documentElement.clientHeight / clientWidth
当浏览器处于标准模式时,它会为您提供视口大小。通常用作IE的后备。
- document.body.clientHeight / clientWidth
这为Quirks mode提供了视口高度。您不希望处于Quirks模式。检查文档的<!DOCTYPE
。
我只需将其与观看区域的大小进行比较
然后,您还必须查看document.documentElement.scrollTop
/ scrollLeft
。
答案 1 :(得分:0)
尝试
document.getElementById("").offsetWidth
使用不同的元素ID填写上面的代码,尝试使用body标签或包装div。
答案 2 :(得分:0)
显然,通过转到父文档,我能够获得正确的值。
谢谢!