Repository navigation
Releases
Releases · Streamfish-lab/dsh-splash-fish
v0.3.0 — 收尾时序修正
这一版全在收尾。之前一直没解决的是:动画结束时人物先消失、文字还亮着,中间还会闪一下宿主的加载页。
淡出
- 头发视频 3.6 秒、主动画 4.4 秒。视频先播完,
ended回调里把人物节点摘掉了,所以人比背景早消失将近一秒。改成循环播放。 .sf-bg上有animation: sfFade ... forwards。CSS 动画的 forwards 状态优先级高于内联样式,淡出时往opacity写 0 压不住,表现就是背景和人物怎么都不淡。淡出前先把animation掐掉。- 淡出改成逐帧写透明度,所有直接子节点拿同一个
1 - easeOutCubic(p),人物、背景、文字一起走。
启动
- 撤封面时不再把宿主的启动壳放出来,动画淡完不会露出
DEEPSEEK HARNESS。 - 宿主还有一张
STARTING WORKSPACE加载页,不属于[data-dsh-boot]。按文字把那一层找出来压成透明,扫 15 秒后收工。 - 淡出分两段:内容 800ms 淡完,深色底留着继续挡,界面就绪后再花 400ms 撤掉。
已知限制
右上角的最小化、最大化、关闭是 Windows 画的,在网页上面一层,CSS 碰不到。这个不管了。
完整改动见 CHANGELOG.md。
v0.2.3 — never block the UI
v0.2.3 — 2026-10-31
修一个很严重的问题:装上之后整个界面点不动了。
原因是我在 v0.2.1 里把动画层挂到了 下面。那层是 position:fixed; inset:0,铺满整个窗口,但我漏了 pointer-events: none,所以鼠标事件全被它吃掉了。麻烦的是它已经不在 React 树里,组件卸载时如果回调没跑到,这层就一直留在页面上,界面看着正常,点哪儿都没反应。
改了三处:
动画层和 React 渲染的那个空 div 都加上 pointer-events: none,就算残留也挡不住鼠标
挂载前先把上一次可能留下的 .sf-stage-host 删掉
播完之后再挂一个 1.2 秒的定时器,到点直接移除整层,不再依赖卸载回调
因为根层不接鼠标了,点击跳过改成在 window 上捕获监听,并且 stopPropagation 把这次点击吞掉,免得顺带点到下面的按钮。播完监听自动移除。
顺手把 v0.2.2 加的顶部压暗带删了,看着太刻意。
确认方法:本机跑完整一轮,结束后等 7 秒,用 document.elementFromPoint 查屏幕中心,返回的是 body。改之前同一个位置返回的是 dsh-splash-fish 那个 div。