Странная горизонтальная прокрутка в браузере Android
Посмотрите следующую демонстрацию на устройстве Android:
Есть красная коробка, которая немного за кадром. Если вертикальная прокладка отсутствует, вы не можете перетаскивать страницу в любом направлении. Когда проставка присутствует и занимает больше места по вертикали, чем окно, вы можете перетащить страницу вниз (как и ожидалось), однако теперь вы также можете перетаскивать ее горизонтально.
Похоже, это происходит только в браузерах Android. Есть какие-нибудь подсказки о том, что здесь происходит? Я бы хотел полностью запретить горизонтальную прокрутку, сохранив вертикальную прокрутку.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" id="viewportMobile" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<link rel="stylesheet" type="text/css" href="test.css" />
<style>
html,body {
overflow: hidden;
}
body {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
overflow-y: visible;
overflow-x: hidden;
}
.offscreen {
position: absolute;
right: -20px;
background-color: #ed0021;
padding: 20px 20px 20px 20px;
}
</style>
<script>
var showSpacer=true;
function toggleSpacer() {
showSpacer = !showSpacer;
var spacer = document.getElementById('spacer');
spacer.style.display = showSpacer ? 'block' : 'none';
}
</script>
</head>
<body>
<div class="toggle-button" onClick="toggleSpacer()">Toggle Spacer</div>
<div class="offscreen"></div>
<div id="spacer" style="width:50px; height:2000px; background-color:#444">
</div>
</body>
</html>
1 ответ
Удаление свойств переполнения и изменение положения относительно относительного для элемента тела работало для меня. Это должно выглядеть так:
body {
position: relative;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
редактировать: плохая копия / вставка
редактировать 2: обновленный ответ