弹簧预设
为不同动画效果预定义的弹簧设置
弹簧预设
SSGOI 提供预定义的弹簧设置,让您无需手动调整物理值即可轻松创建不同的动画效果。
使用方法
您可以从 presets
模块导入弹簧预设:
import { config } from '@ssgoi/react/presets';
// 或
import { config } from '@ssgoi/svelte/presets';
// 在过渡中使用
transition({
spring: config.gentle,
tick: (progress) => {
// 您的动画逻辑
}
})
您也可以导入单独的预设:
import { gentle, wobbly, stiff } from '@ssgoi/react/presets';
transition({
spring: gentle,
// ...
})
可用预设
default
适合大多数用例的平衡动画。
- stiffness: 170
- damping: 26
- 用例: 通用过渡
gentle
具有细微动作的平滑、平静的过渡。
- stiffness: 120
- damping: 14
- 用例: 优雅、专业的界面
wobbly
具有明显弹簧效果的弹性、活泼的动画。
- stiffness: 180
- damping: 12
- 用例: 有趣、互动的元素
stiff
超调最小的快速响应动画。
- stiffness: 210
- damping: 20
- 用例: 快速 UI 响应、工具提示
slow
谨慎而有节制的动画。
- stiffness: 280
- damping: 60
- 用例: 重要状态更改、展示效果
molasses
非常缓慢和粘稠的运动。
- stiffness: 280
- damping: 120
- 用例: 戏剧性效果、加载状态
自定义弹簧配置
您随时可以创建自己的弹簧配置:
transition({
spring: {
stiffness: 150,
damping: 15
},
// ...
})
物理值说明
- stiffness: 控制弹簧的张力。值越高,动画速度越快。
- damping: 控制阻力。值越高,振荡越少,停止越平滑。
示例
在视图过渡中使用预设
import { Ssgoi } from '@ssgoi/react';
import { config } from '@ssgoi/react/presets';
import { fade } from '@ssgoi/react/view-transitions';
const config = {
defaultTransition: fade({ spring: config.gentle }),
transitions: [
{
from: '/home',
to: '/about',
transition: slide({ spring: config.wobbly })
}
]
};
在元素过渡中使用预设
import { transition } from '@ssgoi/react';
import { config } from '@ssgoi/react/presets';
const fadeIn = transition({
spring: config.slow,
tick: (progress) => ({
opacity: progress,
transform: `translateY(${(1 - progress) * 20}px)`
})
});