Hammerjs刷卡锁定了window.innerHeight on Chrome Android

时间:2018-05-08 15:20:52

标签: javascript android google-chrome hammer.js

我在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>

0 个答案:

没有答案