诊断确认:跟随系统与手动点击的 VT 流程在 JS/CSS 层完全等价(animationName、 --tt-r、bg 翻转、clip-path 全部正确),但视觉上跟随系统场景下圆形展开动画 不显示,仅瞬切。系统偏好变化是后台事件,VT 在此上下文下动画不可靠。 改用设置语义的瞬切:JS 侧新增 applyResolvedTheme(isDark) 入口(非翻转语义, 直接 add/remove dark class),Rust effect 改调 __applyResolvedTheme 传实际 明暗值,移除圆心计算逻辑。职责清晰: - 手动点击 → __startThemeTransition → VT 圆形展开(用户手势,动画可靠) - 跟随系统 → __applyResolvedTheme → 瞬切(后台同步语义)
16 lines
509 B
TypeScript
16 lines
509 B
TypeScript
import { initPostContent } from './post-content';
|
|
import { applyResolvedTheme, startThemeTransition } from './theme-transition';
|
|
import './style.css';
|
|
|
|
declare global {
|
|
interface Window {
|
|
__initPostContent: (selector: string) => void;
|
|
__startThemeTransition: (x: number, y: number) => void;
|
|
__applyResolvedTheme: (isDark: boolean) => void;
|
|
}
|
|
}
|
|
|
|
window.__initPostContent = initPostContent;
|
|
window.__startThemeTransition = startThemeTransition;
|
|
window.__applyResolvedTheme = applyResolvedTheme;
|