CSS scroll-snap-type 属性
定义和用法
scroll-snap-type 属性指定了当您停止滚动时,元素将如何吸附到焦点以及吸附的方向。
要实现滚动吸附行为,必须在父元素上设置 scroll-snap-type 属性,并在子元素上设置 scroll-snap-align 属性。
实例
例子 1
在 x 轴上设置滚动吸附功能:
#container {
scroll-snap-type: x mandatory;
}
例子 2:在 x 轴和 y 轴上设置吸附行为
在 x 轴和 y 轴上均设置 scroll-snap-type 属性:
#container > div {
scroll-snap-type: both mandatory;
}
例子 3:带有邻近性的吸附行为
在 x 轴和 y 轴上设置带有邻近性行为的 scroll-snap-type 属性。使用此属性值时,如果滚动操作正好停止在两个元素的中间位置,则不会进行吸附:
#container > div {
scroll-snap-type: both proximity;
}
CSS 语法
scroll-snap-type: none|x|y|block|inline|both|mandatory|proximity|initial|inherit;
属性值
| 值 | 描述 |
|---|---|
| none | 无滚动吸附效果。默认值。 |
| x | 在 x 轴上设置滚动吸附效果。 |
| y | 在 y 轴上设置滚动吸附效果。 |
| block | 在块级方向上设置滚动吸附效果。 |
| inline | 在行内方向上设置滚动吸附效果。 |
| both | 在 x 轴和 y 轴上均设置滚动吸附效果。 |
| mandatory | 滚动操作完成后,滚动将自动移动到吸附点。 |
| proximity |
类似于 mandatory,但不如其严格。 滚动操作完成后,滚动将自动移动到吸附点,但在吸附点之间有一个区域没有吸附效果。 取决于浏览器参数。 |
| initial | 将此属性设置为其默认值。参阅 initial。 |
| inherit | 从其父元素继承此属性。参阅 inherit。 |
技术细节
| 默认值: | none |
|---|---|
| 继承性: | 否 |
| 动画制作: | 不支持。请参阅:动画相关属性。 |
| 版本: | CSS3 |
| JavaScript 语法: | object.style.scrollSnapType="x mandatory" |
浏览器支持
表格中的数字表示首个完全支持该属性的浏览器版本。
| Chrome | Edge | Firefox | Safari | Opera |
|---|---|---|---|---|
| 69.0 | 79.0 | 99.0 | 11.0 | 56.0 |