我试图在方向改变时准确捕捉移动浏览器的窗口高度和宽度,但是(在Android中,我正在测试) - 当方向监听器触发并调用函数来捕获窗口高度时宽度,新尺寸还没有准确反映出来,所以我最终不得不调用任意延迟来让事情记录下来。我该如何处理?这是我的代码:
window.addEventListener(orientationEvent, function() {
setTimeout("setViewport()", 500);
//setViewport();
}, false);
function setViewport() { //Called each time orientation changes, including initial orientation
viewportW = window.innerWidth; //only reports the accurate window size if the function is called on a delay
viewportH = window.innerHeight;
}
答案 0 :(得分:0)
改为使用resize事件
window.addEventListener('resize', function() {
viewportW = window.innerWidth;
viewportH = window.innerHeight;
}, false);
如果您只想在方向更改时特别更改这些值,可以使用window.matchMedia来验证方向是否也已更改:
var portrait=(window.matchMedia("(orientation: portrait)")?true:false);