У меня возникла проблема с hammerjs на Chrome Android 66.
У меня есть меню боковой панели, положение: фиксированное, с верхом: 0 и низом: 0. Когда элемент меню открывается, макет корректен, когда URL-панель вверху видна и скрыта. На устройстве Chrome осмотрите, если я запущу "window.innerHeight" в консоли, он даст мне высоту, когда панель URL видна, и другую высоту, когда она скрыта. Это правильно, потому что при скрытой панели URL внутренняя высота должна быть больше.
После того, как я произвожу пролистывание, в каком бы состоянии я ни находился, «window.innerHeight» блокируется до этой высоты, с или без панели URL. Это нарушает мой макет, потому что 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>