语法
Animate
概述
2.1.x 版本后,G2 支持自定义动画。支持自定义的动画的划分粒度在Geom层。其中出场动画(appear)和退场动画(out),支持自定义。更新动画只支持是否开启。如下:
var Animate = {
interval: {
// 出场动画
appear: function() {
return clipIn;
},
// 是否开启更新动画
update: true,
// 退场动画
out: function() {
return lineWidthOut;
}
}
};
示例
var Animate = G2.Animate;
function barIn(shape){
var origin = shape.get('origin'); // 原始数据
var box = shape.getBBBox(); // 包围盒
var points = origin.points; // 原始数据点集
var i = origin.index; // 原始数据索引
var x = box.centerX;
var y;
if (points[0].y - points[1].y <= 0) { // 当顶点在零点之下
y = box.maxY;
} else {
y = box.minY;
}
// 设置初始态
shape.transform([
['t', -x, -y],
['s', 1, 0.1],
['t', x, y]
]);
// 设置动画目标态
shape.animate({
transform: [
['t', -x, -y],
['s', 1, 10],
['t', x, y]
],
delay: i * 20
}, 800, 'easeOutElastic');
}
Animate.interval.appear = function(){
return barIn;
}
var data = [];
for (var i = 0; i < 50; i++) {
data.push({
x: i,
y: (Math.sin(i / 5) * (i / 5 -10) + i / 6) * 5
});
}
var chart = new G2.Chart({
id: 'c1',
width: 800,
height: 500
});
chart.axis('x', false);
chart.legend(false);
chart.source(data);
chart.interval()
.position('x*y')
.color('y', '#4a657a-#308e92-#b1cfa5-#f5d69f-#f5898b-#ef5055');
chart.render();