@antv/g-base
Version:
A common util collection for antv projects
28 lines (22 loc) • 611 B
text/typescript
import * as d3Ease from 'd3-ease';
type EaseFn = (t: number) => number;
interface EasingMap {
[key: string]: EaseFn;
}
const EASING_MAP: EasingMap = {};
/**
* 根据名称获取对应的动画缓动函数
* @param type 动画缓动函数名称
*/
export function getEasing(type: string) {
// 默认从 d3-ease 中获取
return EASING_MAP[type.toLowerCase()] || d3Ease[type];
}
/**
* 注册动画缓动函数
* @param type 动画缓动函数名称
* @param easeFn 动画缓动函数
*/
export function registerEasing(type: string, easeFn: EaseFn) {
EASING_MAP[type.toLowerCase()] = easeFn;
}