使用 OverlayScrollbars 优雅的自定义滚动条
官方网站:OverlayScrollbars
前言
我对 windows 系统中的浏览器滚动条样式一直很不满意,它巨丑,但我忍了。直到我在某天开发网站时候遇到了一个问题:
当网站在一个内容较多(会自动触发滚动条)和一个内容较少(没有滚动条)的两个页面之间切换的时候,由于滚动条占据的那十几像素的宽度的问题,导致两个页面的宽度不一样,因此出现了严重的整体布局偏移。这个问题在单页应用的现代网站,尤其是还使用了 famer motion 之类库来追求极致 C 端体验的网站下是难以忍受的。
我尝试了各种原生解决方案,均无法很好的解决这个问题,亦或者会产生新的问题。最终我选择使用 OverlayScrollbars,它完全抛弃了原生滚动条,而是利用 JS 自己实现了。
这个库除了能解决我上面提到的若干问题,而且还意外的十分强大,能让你自定义诸多内容。并且框架支持和优化也到位,适用于现代化网站。
安装和使用
我以 Nextjs 为例,其他框架请见官网 OverlayScrollbars
安装
1 | pnpm install overlayscrollbars-react |
创建 provider
我将其放在 src\providers\OverlayScrollbarsProvider.tsx:
1 | "use client"; |
导入样式和 provider
src\app\layout.tsx:
1 | import "overlayscrollbars/styles/overlayscrollbars.css"; |
overlayscrollbars.css 要注意放在 global.css 上面
1 | <html lang="en" data-overlayscrollbars-initialize> |
比如我的 layout.tsx ,完整如下:
1 | import type { Metadata } from "next"; |
自定义样式
最后就是改样式了,官方网站有比较详细的说明:
我这里展示一下我的:
src\app\global.css:
1 | /* OverlayScrollbars: 缩短滚动条滑块(thumb)长度 */ |
- 标题: 使用 OverlayScrollbars 优雅的自定义滚动条
- 作者: 三葉Leaves
- 创建于 : 2025-10-11 00:00:00
- 更新于 : 2026-03-16 12:05:06
- 链接: https://blog.oksanye.com/fdaddaa348df/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论