我正在尝试使用CSS scroll-snap实现全尺寸浏览器视口滚动。但是 Android 上的 Chrome 存在一个问题(在 91 版本中测试):当地址栏移动时(在第一次滚动或滚动方向改变时)滚动元素可能会晃动或/和仅部分滚动——而不是滚动到正确的元素点。请查看代码片段。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="wrapper">
<div class="wrapper__el" style="background: green">1</div>
<div class="wrapper__el">2</div>
<div class="wrapper__el" style="background: green">3</div>
<div class="wrapper__el">4</div>
<div class="wrapper__el" style="background: green">5</div>
<div class="wrapper__el">6</div>
<div class="wrapper__el" style="background: green">7</div>
<div class="wrapper__el">8</div>
<div class="wrapper__el" style="background: green">9</div>
</div>
<style>
html, body {
height: 100%;
margin: 0;
}
.wrapper {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
scroll-snap-type: mandatory;
scroll-snap-type: y mandatory;
overflow: scroll;
}
.wrapper__el {
scroll-snap-align: start;
scroll-snap-stop: always;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
</style>
</body>
</html>
也许有一些方法可以使用 CSS scroll-snap 使这项工作顺利而准确地工作?同时,我想让地址栏在 Android 上的 Chrome 上移入/移出,因为它是在这个浏览器中设计的。