响应式设计模式在屏幕旋转后没有为 window.innerWidth 返回正确的值

这是一个Firefox错误还是我搞砸了?


如果我在真实设备(例如 Android)上使用 chrome 甚至 Firefox,没有问题,它似乎只影响 Firefox 的响应式设计模式。


这是复制问题所需的完整代码:


<html>

<head>

<meta charset="UTF-8">

<meta name="viewport" id="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>

</head>

<body>


<script>

var pageInPortraintMode;


// Prevent keyboard from squeezing the entire UI

addEventListener("load", function() {

  pageInPortraintMode = window.innerHeight > window.innerWidth;

  document.getElementById("viewport").setAttribute("content", "width=" + window.innerWidth + ", height=" + window.innerHeight + ", initial-scale=1.0, maximum-scale=1.0, user-scalable=0");

})


// Listen to window resizes to detect orientation changes

window.addEventListener("resize", windowSizeChanged);


function windowSizeChanged() {

  alert(window.innerWidth + "x" + window.innerHeight);

  if (((pageInPortraintMode === true) && (window.innerHeight < window.innerWidth)) || ((pageInPortraintMode === false) && (window.innerHeight > window.innerWidth))) {

    pageInPortraintMode = window.innerHeight > window.innerWidth;

    document.getElementById("viewport").setAttribute("content", "width=" + window.innerWidth + ", height=" + window.innerHeight + ", initial-scale=1.0, maximum-scale=1.0, user-scalable=0");

  }

}

</script>


<div style="width:100%; height:100%; background-color:#000; position:fixed; left:0; top:0"></div>


</body>

</html>

要复制进入响应式设计模式 (Ctrl+Shift+M),请加载 html,然后按“旋转视口”按钮。


开心每一天1111
浏览 100回答 1
1回答

ABOUTYOU

看来这是一个可重现的 Firefox 错误&nbsp;https://bugzilla.mozilla.org/show_bug.cgi?id=1650024
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript