数字花园

一次优雅的撤退:跨页过渡的三十分钟生命周期

2026-09-14 · 约 2 分钟 · 决策复盘 · 设计

它来的时候,被所有人看好

跨页 View Transition——纯 CSS 一行 @view-transition { navigation: auto; },页面之间交叉淡入淡出,0.5 秒弹簧曲线。不碰任何脚本,不支持的浏览器自动降级。

技术上无可挑剔,甚至可以说优雅。它也确实上线了。

然后用户说了一句话

“在数字花园点联系,会闪一下主页最顶端,然后才到联系区。”

一句话,它就死了。

根因:快照不知道你要去哪

跨页过渡给新页面拍快照时,页面还停在顶端——浏览器不知道”联系”这个锚点在页尾。于是过渡先演到顶端画面,锚点跳转才姗姗来迟。

技术上可以修:pageswap 里判断目标带锚点就跳过过渡,直接落点。也确实修好了。

但修好之后回头看,问题变了:带锚点的跳转要直接落点,不带锚点的才配拥有过渡——那这条规则本身,就已经在承认过渡是错的了。

撤退的判断标准

留着它,页面之间多 0.5 秒的柔化,代价是心智里多一条”什么时候有、什么时候没有”的特例。

撤了它,世界回到简单:页面跳转就是跳转,干脆、直接、符合浏览器三十年来的预期。

**当一条规则需要例外来救,例外本身往往就是答案。**当天它就下线了,CSS 删了两段,脚本删了十行。

沉淀

这次迭代最值钱的不是加上了什么,而是敢在同一天把刚上线的东西拿下来。对的作品是反复打磨出来的,对的判断也是。

克制不只是不添加——克制也包括,亲手撤掉自己上个月还很得意的东西。

评论

← 数字花园