Scroll Snap Bug(Mac 上的 Chrome)- 允许向上滚动到 HTML 空白处

use*_*900 3 html css google-chrome

尝试确定这是否是 Chrome 或我的代码的错误。使用下面的代码,当我向下滚动时,它会执行我想要的操作,但是当我向上滚动时,它可以让我滚动到我想要的高度,而不会导致主体弹回。我已将滚动捕捉应用到 html,因为它在 Chrome 中不起作用(如果在 body 上)。

演示: http: //manifest.thedevtest.com/scrollsnap/(向上滚动)

代码:

<html>
<head>
    <title>Chrome Scroll Snap Issue Demo</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        html {

          scroll-snap-type: mandatory;
            scroll-snap-points-y: repeat(100vh);
            scroll-snap-type: y mandatory;
            background: red;
        }

        section {
            height: 100vh;
            width: 100vw;
            scroll-snap-align: start;
        }
        .foo {
            background-color: green;
        }
        .bar {
            background-color: blue;
        }
        </style>
</head>
<body>
    <section class="foo">
    </section>
    <section class="bar">
    </section>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

你们能复制这种情况吗?如果是的话,您有什么想法可以防止这种情况发生吗?

use*_*900 6

我还没有确定这是否是 chrome 的错误,但修复方法是管理过度滚动行为(可以在 Chrome 中完成)https://developers.google.com/web/updates/2017/11 /过度滚动行为

body {
    overscroll-behavior-y: none;
}
Run Code Online (Sandbox Code Playgroud)

做这份工作。感谢 reddit 上的 /u/Anemina。https://old.reddit.com/r/css/comments/i9kkiw/scroll_snap_bug_chrome_on_mac/