javascript中的视口大小

时间:2019-03-21 13:44:54

标签: javascript ios viewport

我知道这个问题被问了一百万遍,并且有一百万个答案都是相同的,而且都是错误的。我一直在努力用javascript获取视口大小,以使其在任何地方都可以使用。

除了在iOS上的Safari之外,我已经尽可能在所有浏览器上使用它。我已经在多部iPhone上使用iOS 10、11、12进行了测试。这是到目前为止我遇到的最可靠的方法的一个版本:

function getViewportSize() {
    return {
        width: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),
        height: Math.max(document.documentElement.clientHeight, window.innerHeight || 0)
    };
}

但是,iOS上的document.documentElement.clientHeightwindow.innerHeight都返回 document 的高度,而不是视口的高度。因此,如果文档较长,他们将返回该文档。只要页面短于视口,它们(都会)都返回视口高度。简而言之,两者似乎都可以Max(viewport height, document height)

我已经创建了一支笔,该笔将在每个有点敏感的对象上显示每个width / height属性:https://codepen.io/thany-madeinjapan/pen/xBQwNX只要添加更多文本,您就会看到提到的两个属性会随着文档而愉快地增长,即它们不反映视口高度。宽度有相同的问题-禁用自动换行以查看其发生情况。问题是:获取视口宽度/高度的确切方法是什么?

0 个答案:

没有答案