SuperAPI AI 工具集

gsap-sveltekit

前端与建站

查看项目

更新于 10-15 23:34

技能介绍

用途:在 SvelteKit + Svelte 5(runes 模式)项目中构建或审查 GSAP 动画,处理页面过渡、组件进入/退出、滚动效果、路由参数变化时的页面复用,以及动画清理。核心生命周期为 mount → initial state → intro → settled → outro → end state → unmount,其中挂载与卸载归 Svelte,动画负责中间五个阶段。

主要能力:判断何时运行动画;选择引擎(Svelte transition、View Transitions、GSAP);处理导航钩子顺序、outro 先于导航、导航锁、前进后退、滚动与焦点、预加载;区分页面复用与重挂载、布局、{#key} 与 afterNavigate;实现五阶段、GSAP context、显示隐藏、布局稳定、滚动、文本与插件;平滑滚动(Lenis、ScrollSmoother);幕布、首次访问预加载、共享元素变形;触控、视口变化与设备预算;以及验证。

使用方式:先读仓库说明、现有动画、布局、导航、CSS、无障碍约定与检查项;确认 SvelteKit 与 Svelte 5 runes 模式,读取已安装的 @sveltejs/kit 与 svelte 版本及其类型定义;检查 svelte.config.js、页面选项(ssr、csr、prerender)、src/app.html 中 body 的 data-sveltekit-preload-data 及 data-sveltekit-reload 链接。GSAP 仅在浏览器运行,onMount 与 $effect 不在服务端执行,模块级代码需浏览器守卫;用 gsap.context 将选择器限定到 bind:this 根节点,并在 teardown 中清理所有 tween、trigger、split 与监听器。

限制与注意:每个元素只用一个引擎;out: 指令与 GSAP 同时动画会冲突。同路由新参数会原地更新页面,需从 afterNavigate 重跑生命周期或用 {#key} 重挂载。前进后退经 popstate 到达,不应运行 outro。减少动态效果需达到相同 settled 状态并触发完成回调。需定义中断与快速点击行为,完成时只释放一次导航等待。建议在真实浏览器验证,涉及路由、配置、依赖或发布变更时使用生产构建。

版本门槛:onNavigate(1.24)、$app/state(2.12,之前用 $app/stores)、导航目标 to.scroll(2.51)、svelte/motion 的 prefersReducedMotion(5.7)、{@attach}(5.29)。Svelte 4 或旧模式需将 $effect 建议映射到 onMount 与 onDestroy。