motion
Version:
The Motion library for the web
37 lines (32 loc) • 1.24 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var popmotion = require('popmotion');
var array = require('../../../../utils/array.cjs.js');
var getEasing = require('../../../js/utils/get-easing.cjs.js');
function eraseKeyframes(sequence, startTime, endTime) {
for (let i = 0; i < sequence.length; i++) {
const keyframe = sequence[i];
if (keyframe.at > startTime && keyframe.at < endTime) {
array.removeItem(sequence, keyframe);
// If we remove this item we have to push the pointer back one
i--;
}
}
}
function addKeyframes(sequence, keyframes, easing, offset, startTime, endTime) {
/**
* Erase every existing value between currentTime and targetTime,
* this will essentially splice this timeline into any currently
* defined ones.
*/
eraseKeyframes(sequence, startTime, endTime);
for (let i = 0; i < keyframes.length; i++) {
sequence.push({
value: keyframes[i],
at: popmotion.mix(startTime, endTime, offset[i]),
easing: getEasing.getEasingForSegment(easing, i),
});
}
}
exports.addKeyframes = addKeyframes;
exports.eraseKeyframes = eraseKeyframes;