READMESource: main@0dc6def6
Install
dsh plugin --profile web add dsh-smooth-scroll
需要已安装 DSH,并至少成功启动过一次 Web GUI。
Quickstart
dsh plugin --profile web add dsh-smooth-scroll
dsh --profile web --dump-config # 看到 dsh-smooth-scroll 层即安装成功
# 重启 dsh web,打开会话,流式内容平滑滚到底部
滚动行为
直接在原生 scrollTop 上做有节奏的平滑滚动,配合合成 getter:平滑期间 scrollTop 读到目标值,DSH 自身状态机看不到中间位置,不误判脱钩、不重复钉底。
- 速度剖面: 起步 0 到 0.9px/ms 用 240ms 缓升,巡航恒速 0.9px/ms,收尾 220ms 软着陆。
- 用户滚动接管: 真实位置偏离动画写入时立即停动画,DSH 正常脱钩,回到最新按钮照常。
- 同目标兜底: DSH 每滚动事件重跑 toBottom 而目标不变时忽略,动画不被逐帧重启。
- 减少动效: prefers-reduced-motion 时完全回退官方瞬时行为。
- 无 transform: 不应用任何 transform,输入栏 overlay/sticky 永不受扰。
参数
| 常量 | 默认 | 含义 |
|---|---|---|
| VEL | 0.9 | 巡航速度(px/ms) |
| RAMP_MS | 240 | 起步缓加速时长 |
| QUIET_MS | 240 | 判定停止增长的静默窗口 |
| TAIL_PX | 120 | 进入软尾的剩余距离阈值 |
| TAIL_MS | 220 | 软尾缓动时长 |
改参数:编辑 src/client.js 顶部常量区,pnpm run build 后重启 dsh web。
兼容性
- npm 正式版 0.1.1-rc.2: 适配 npm 上的 dsh 0.1.1-rc.2(client-runtime 一代)。
- 开发版 0.1.2-alpha.1: main 分支,适配 dsh GitHub 最新版(cordis-Context 一代)。
License
MIT
No comments yet. Be the first to write one.