我在Chrome Android 66上遇到过hammerjs的问题。
我有一个侧栏菜单,其位置:固定,顶部:0和底部:0。当菜单项打开时,顶部的URL栏可见并隐藏时,布局正确。在Chrome设备检查中,如果我在控制台中运行“window.innerHeight”,它将为我提供URL栏可见时的高度以及隐藏时的高度。这是正确的,因为隐藏了URL栏,内部高度应该更多。
在我滑动之后,无论我处于哪种状态,“window.innerHeight”都会锁定到该高度,无论是否有URL Bar。这打破了我的布局,因为top:0和bottom:0停留在我完成第一次滑动的状态。
有没有人碰到过这个?任何可能的解决方案使window.innerHeight(和window.outerHeight)适应它应该再次应有的东西?这适用于所有其他浏览器,只适用于Chrome Android。
这是我放在一起进行测试的一小段代码。谢谢你的任何建议。
<html>
<head>
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1">
<style>
#myElement {
background: silver;
height: 300px;
text-align: center;
font-size:30px;
}
.ex-height{
height: 400px;
border:solid 1px red;
}
</style>
</head>
<body>
<div class="ex-height">extra height for scrolling</div>
<div id="myElement"></div>
<div class="ex-height">extra height for scrolling</div>
<script src="https://hammerjs.github.io/dist/hammer.js"></script>
<script>
var myElement = document.getElementById('myElement');
var mc = new Hammer(myElement);
mc.on("panleft panright tap press", function(ev) {
myElement.textContent = ev.type +" gesture detected.";
});</script>
</body>
</html>