×

Vue 最丑的 UI 组件!这个 4.8K Star 的神器,3 步搞定,UI 直接起飞!

独孤求败 独孤求败 发表于2026-04-28 10:47:38 浏览31 评论0

抢沙发发表评论

在前端世界里,有一个长期被吐槽却又不得不忍受的存在——滚动条

它几乎出现在每个页面里,却又几乎无法优雅地控制。

你可以精细打磨按钮卡片排版,但只要一出现滚动条—— 风格直接回到“操作系统默认”。

原生滚动条:能改,但不好用

过去我们想改滚动条,基本就两条路。

第一种:::-webkit-scrollbar

::-webkit-scrollbar {
  width8px;
}
::-webkit-scrollbar-thumb {
  background#1677ff;
}

问题:

  • 只在 WebKit 系浏览器上好使
  • Firefox 直接不认
  • 还不是标准,未来也不稳

第二种:标准方案 scrollbar-color

scrollbar-color#1677ff #f0f2f5;
scrollbar-widththin;

现在确实是“正统写法”了,而且跨浏览器基本可用。

但能力也有限:你只能改颜色和粗细。

想要:

  • 圆角
  • 阴影
  • hover 效果
  • 更精细的视觉控制

——基本做不到。

那怎么办?

如果你对 UI 有点要求,这两种方案都不太够。

这时候就轮到一个老牌但一直很稳的方案了:OverlayScrollbars

图片

目前这个库在 Github 上已经获得了 4.8KStar

什么是 OverlayScrollbars?

它本质上做了一件很聪明的事:

保留原生滚动行为,但“接管”滚动条的视觉层。

也就是说:

  • 滚动还是浏览器原生滚动(不卡、不怪)
  • 但你看到的滚动条,是你自己定义的

为什么推荐 OverlayScrollbars?

🎨 UI 真正可控

不像 scrollbar-color 只给你两种颜色。

图片

OverlayScrollbars 可以:

  • 控制宽度
  • 做圆角
  • 加动画
  • 定义 hover / active 状态

🧱 多框架直接用

图片

不用自己封装:

  • React
  • Vue
  • Angular
  • Svelte

都有现成支持。

🧠 成本很低

没有复杂配置,没有一堆奇怪 API

用法简单到有点离谱。

上手到底有多简单?

就三步。

安装

npm install overlayscrollbars

引入

import 'overlayscrollbars/overlayscrollbars.css';
import { OverlayScrollbars } from 'overlayscrollbars';

初始化

OverlayScrollbars(document.querySelector('#app'), {});

没了。

想稍微调一下?

OverlayScrollbars(document.querySelector('#app'), {
  scrollbars: {
    autoHide'leave',
  },
});

写在最后

滚动条这个东西,很小,但一直很烦。

过去我们要么忍,要么用一堆 hack 去改—— 要么不统一,要么不稳定,要么不好看。

现在有了 scrollbar-color,确实迈进了一步:

至少能“统一一下风格”了。

但如果你对 UI 有更高一点要求,比如:

  • 想要更干净的布局
  • 想要更精致的细节
  • 想要真正可控的设计

那光靠原生 CSS 还是不太够。

这也是 OverlayScrollbars 存在的意义:在不改变原生体验的前提下,把滚动条变成一个“可设计的组件”。

  • 官网地址https://docs.namichong.com/overlayscrollbars/
  • Github 地址https://github.com/KingSora/OverlayScrollbars


群贤毕至

访客