几年前,我有一个客户请求在 javascript 中使用页面缩放检测方法。
就我而言,他希望它可以在 Facebook 应用程序上运行。通过 iframe 画布/视口。
我使用了 Max 和 Min 函数
function getDocHeight() {
var D = document;
return Math.max(
Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
Math.max(D.body.clientHeight, D.documentElement.clientHeight)
);
}
function getDocWidth() {
var D = document;
return Math.max(
Math.max(D.body.scrollWidth, D.documentElement.scrollWidth),
Math.max(D.body.offsetWidth, D.documentElement.offsetWidth),
Math.max(D.body.clientWidth, D.documentElement.clientWidth)
);
}
function getMinHeight(h) {
return Math.min(viewport.currentHeight, getDocHeight(), h);
}
getMinWidth 类似,但我必须对其应用基于浏览器的调整。
我创建了一个名为 viewport 的对象,它存储了固定位置 div 的属性,具体来说 currentHeight 和 currentWidth 是 div 元素的 offsetHeight 和 offsetWidth 。
我最终初始化了一个 window.intervalTimer 来检查该 div 的状态,并与视口对象中存储的值进行比较。