mirror of
https://gitee.com/antv/g6.git
synced 2024-12-15 18:11:08 +08:00
76 lines
1.7 KiB
HTML
76 lines
1.7 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html lang="en">
|
||
|
<head>
|
||
|
<meta charset="UTF-8">
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||
|
<title>自定义-出场入场动画</title>
|
||
|
</head>
|
||
|
<body>
|
||
|
<div id="mountNode"></div>
|
||
|
<script src="../build/g6.js"></script>
|
||
|
<script>
|
||
|
const data = {
|
||
|
"nodes": [
|
||
|
{
|
||
|
"shape": "customNode",
|
||
|
"id": "node1",
|
||
|
x: 100,
|
||
|
y: 100
|
||
|
}
|
||
|
],
|
||
|
};
|
||
|
|
||
|
G6.registerNode('customNode', {
|
||
|
// 自定义入场动画
|
||
|
enterAnimate(item) {
|
||
|
const group = item.getGraphicGroup();
|
||
|
const model = item.getModel();
|
||
|
const x = model.x;
|
||
|
const y = model.y;
|
||
|
|
||
|
group.transform([
|
||
|
[ 't', -x, -y ],
|
||
|
[ 's', 0.01, 0.01 ],
|
||
|
[ 't', x, y ],
|
||
|
]);
|
||
|
!group.get('destroyed') && group.animate({
|
||
|
transform: [
|
||
|
[ 't', -x, -y ],
|
||
|
[ 's', 100, 100 ],
|
||
|
[ 't', x, y ],
|
||
|
],
|
||
|
}, 450, 'easeBackOut');
|
||
|
},
|
||
|
// 自定义出场动画
|
||
|
leaveAnimate(item) {
|
||
|
const group = item.getGraphicGroup();
|
||
|
const model = item.getModel();
|
||
|
const x = model.x;
|
||
|
const y = model.y;
|
||
|
group && !group.get('destroyed') && group.animate({
|
||
|
transform: [
|
||
|
[ 't', -x, -y ],
|
||
|
[ 's', 0.01, 0.01 ],
|
||
|
[ 't', x, y ],
|
||
|
],
|
||
|
}, 450, 'easeCircleOut', function() {
|
||
|
group.remove();
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
|
||
|
const graph = new G6.Graph({
|
||
|
container: 'mountNode', // dom 容器 或 容器ID
|
||
|
fitView: 'cc',
|
||
|
height: window.innerHeight,
|
||
|
animate: true
|
||
|
});
|
||
|
graph.read(data);
|
||
|
setTimeout(()=>{
|
||
|
graph.remove("node1")
|
||
|
}, 800)
|
||
|
</script>
|
||
|
</body>
|
||
|
</html>
|