@antv/g2plot
Version:
G2 Plot, a market of plots built with the Grammar of Graphics'
27 lines • 1.33 kB
JavaScript
import { Animate } from '@antv/g2';
import * as _ from '@antv/util';
function liquidMoveIn(shape, animateCfg) {
var container = shape.get('parent');
var box = container.getBBox();
var factor = Math.min(Math.max(0, _.get(animateCfg, 'factor', 0.5)), 1);
var delay = _.get(animateCfg, 'delay', 0);
var duration = _.get(animateCfg, 'duration', 800);
var callback = animateCfg.callback;
var originX = (box.minX + box.maxX) / 2;
var originY = box.maxY;
var wrap = container.find(function (shape) { return shape.get('name') == 'wrap'; });
var wrapTargetOpacity = wrap.attr('opacity');
wrap.attr('opacity', 0);
wrap.animate({ opacity: wrapTargetOpacity }, duration * factor, 'easeLinear', null, delay);
var waves = container.find(function (shape) { return shape.get('name') == 'waves'; });
var wavesTargetMatrix = _.clone(waves.attr('matrix'));
waves.attr('transform', [
['t', -originX, -originY],
['s', 1, 0],
['t', originX, originY],
]);
waves.animate({ matrix: wavesTargetMatrix }, duration, animateCfg.easing, function () { return callback && callback(container, wrap, waves); }, delay);
}
liquidMoveIn.animationName = 'liquidMoveIn';
Animate.registerAnimation('appear', 'liquidMoveIn', liquidMoveIn);
//# sourceMappingURL=liquid-move-in.js.map