overscroll-behavior
**overscroll-behavior
** CSS 属性设置浏览器在到达滚动区域边界时执行的操作。
试一试
构成属性
此属性是以下 CSS 属性的简写形式
语法
/* Keyword values */
overscroll-behavior: auto; /* default */
overscroll-behavior: contain;
overscroll-behavior: none;
/* Two values */
overscroll-behavior: auto contain;
/* Global values */
overscroll-behavior: inherit;
overscroll-behavior: initial;
overscroll-behavior: revert;
overscroll-behavior: revert-layer;
overscroll-behavior: unset;
overscroll-behavior
属性指定为从以下值列表中选择的 1 个或 2 个关键字。
两个关键字分别指定 x
和 y
轴上的 overscroll-behavior
值。如果只指定一个值,则假定 x 和 y 具有相同的值。
值
描述
默认情况下,移动浏览器倾向于在到达页面(或其他滚动区域)的顶部或底部时提供“反弹”效果甚至页面刷新。您可能还注意到,当您在页面顶部有一个带有滚动内容的对话框,该页面也具有滚动内容时,一旦对话框的滚动边界到达,底层页面将开始滚动——这称为滚动链接。
在某些情况下,这些行为是不希望的。您可以使用 overscroll-behavior
来消除不需要的滚动链接和浏览器启发的 Facebook/Twitter 应用程序的“下拉刷新”型行为。
请注意,此属性仅适用于滚动容器。特别是,由于<iframe>
不是滚动容器,因此在 iframe 上设置此属性无效。要控制来自 iframe 的滚动链接,请在 iframe 文档的<html>
和<body>
元素上都设置 overscroll-behavior
。
正式定义
正式语法
示例
阻止底层元素滚动
在我们overscroll-behavior 示例(也请查看源代码)中,我们展示了一个包含虚假联系人信息的全页面列表,以及一个包含聊天窗口的对话框。
这两个区域都可以滚动;通常情况下,如果您滚动聊天窗口直到到达滚动边界,底层的联系人窗口也会开始滚动,这是不可取的。可以使用聊天窗口上的overscroll-behavior-y
(overscroll-behavior
也适用)来阻止这种情况,如下所示
.messages {
height: 220px;
overflow: auto;
overscroll-behavior-y: contain;
}
我们还希望在联系人滚动到顶部或底部时去除标准的过度滚动效果(例如,Chrome 在 Android 上会在您滚动到顶部边界之外时刷新页面)。可以通过在<html>
元素上设置overscroll-behavior: none
来防止这种情况
html {
margin: 0;
overscroll-behavior: none;
}
规范
规范 |
---|
CSS 过度滚动行为模块级别 1 # overscroll-behavior 属性 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
- 掌控您的滚动:自定义下拉刷新和溢出效果 在 developer.chrome.com 上 (2017)