UNPKG

tdesign-mobile-vue

Version:
1 lines 2.04 kB
{"version":3,"file":"easing.mjs","sources":["../../../../src/_common/js/utils/easing.ts"],"sourcesContent":["/**\n * @file\n * 缓动函数\n * 参考自: https://github.com/bameyrick/js-easing-functions/blob/master/src/index.ts\n */\n\nexport interface EasingFunction {\n (current: number, start: number, end: number, duration: number): number;\n}\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const linear: EasingFunction = (current, start, end, duration) => {\n const change = end - start;\n const offset = (change * current) / duration;\n return offset + start;\n};\n\n/**\n * @export\n * @param {number} current 当前时间\n * @param {number} start 开始值\n * @param {number} end 结束值\n * @param {number} duration 持续时间\n * @returns\n */\nexport const easeInOutCubic: EasingFunction = (current, start, end, duration) => {\n const change = (end - start) / 2;\n let time = current / (duration / 2);\n if (time < 1) {\n return change * time * time * time + start;\n }\n time -= 2;\n // eslint-disable-next-line no-return-assign\n return change * (time * time * time + 2) + start;\n};\n"],"names":["linear","current","start","end","duration","change","offset","easeInOutCubic","time"],"mappings":";;;;;;AAkBaA,IAAAA,MAAyB,GAAA,SAAzBA,MAAyBA,CAACC,OAAS,EAAAC,KAAA,EAAOC,KAAKC,QAAa,EAAA;AACvE,EAAA,IAAMC,SAASF,GAAM,GAAAD,KAAA,CAAA;AACf,EAAA,IAAAI,MAAA,GAAUD,SAASJ,OAAW,GAAAG,QAAA,CAAA;EACpC,OAAOE,MAAS,GAAAJ,KAAA,CAAA;AAClB,EAAA;AAUaK,IAAAA,cAAiC,GAAA,SAAjCA,cAAiCA,CAACN,OAAS,EAAAC,KAAA,EAAOC,KAAKC,QAAa,EAAA;AACzE,EAAA,IAAAC,MAAA,GAAA,CAAUF,MAAMD,KAAS,IAAA,CAAA,CAAA;AAC3B,EAAA,IAAAM,IAAA,GAAOP,WAAWG,QAAW,GAAA,CAAA,CAAA,CAAA;EACjC,IAAII,OAAO,CAAG,EAAA;IACL,OAAAH,MAAA,GAASG,IAAO,GAAAA,IAAA,GAAOA,IAAO,GAAAN,KAAA,CAAA;AACvC,GAAA;AACQM,EAAAA,IAAA,IAAA,CAAA,CAAA;EAER,OAAOH,MAAU,IAAAG,IAAA,GAAOA,IAAO,GAAAA,IAAA,GAAO,CAAK,CAAA,GAAAN,KAAA,CAAA;AAC7C;;;;"}