记录一下浏览器的滚动行为:
1、Scroll Snap 是 css 中一个独立的模块,可以让元素停止滚动的时候平滑吸附。目前可以放心在移动端使用。
作用在滚动容器上 | 作用在定位子项上 |
---|---|
scroll-snap-type / scroll-snap-stop / scroll-padding / scroll-padding-* | scroll-snap-align / scroll-margin / scroll-margin-* |
2、scroll-behavior: auto | smooth | unset | initial | inherit
可以让滚动容器出现锚点定位,或者 JS 设置 scrollLeft/scrollTop 滚动距离时候表现为平滑定位。目前可以大胆使用。
3、overscroll-behavior: auto | contain | none
属性可以让滚动嵌套时父滚动不触发,比方说弹框中的滚动滚到底部的时候,背后的页面会纹丝不动。可用于弹窗内容滚动,下拉列表的滚动。
4、overflow-anchor: auto | none
属性作用是让页面图片动态加载了很多内容的时候,当前视区的内容保持不变。
5、scrollbar-width: auto | thin | none
可以用来自定义滚动条的宽度,不过不能指定具体数值,只能是正常(17px),细(8px)和没有。主要针对 windows 系统下的 Firefox 浏览器,因为 Mac OS X 或iOS 操作系统滚动条默认就不占据宽度,没必要使用这个,而 Chrome 浏览器可以使用 -webkit-scrollbar
伪元素自定义滚动条的宽度,用不到 scrollbar-width
设置。
6、scrollbar-color: auto | 滑杆颜色 轨道颜色
可以设置滚动条的颜色,和 scrollbar-width
一样,仅 Firefox 浏览器支持。
自定义滚动条可以使用 -webkit-scrollbar
、-webkit-scrollbar-thumb
、-webkit-scrollbar-track
。
7、scrollbar-gutter: auto | stable | stable both-edges
可以让滚动条出现的时候内容不晃动。大胆使用,适合桌面 web 端。