<script> /* eslint no-console:0 */ import Tree, { TreeNode } from '../index'; import '../assets/index.less'; import cssAnimation from '../../_util/css-animation'; function animate (node, show, done) { let height = node.offsetHeight; return cssAnimation(node, 'collapse', { start () { if (!show) { node.style.height = `${node.offsetHeight}px`; } else { height = node.offsetHeight; node.style.height = 0; } }, active () { node.style.height = `${show ? height : 0}px`; }, end () { node.style.height = ''; done(); }, }); } const animation = { enter (node, done) { return animate(node, true, done); }, leave (node, done) { return animate(node, false, done); }, }; export default { render () { return ( <div> <h2>expanded</h2> <Tree defaultExpandAll={false} defaultExpandedKeys={['p1']} openAnimation={{ on: animation, props: { appear: true }}} > <TreeNode title='parent 1' key='p1'> <TreeNode key='p10' title='leaf'/> <TreeNode title='parent 1-1' key='p11'> <TreeNode title='parent 2-1' key='p21'> <TreeNode title='leaf'/> <TreeNode title='leaf'/> </TreeNode> <TreeNode key='p22' title='leaf'/> </TreeNode> </TreeNode> </Tree> </div> ); }, }; </script> <style> .collapse { overflow: hidden; display: block; } .collapse-active { transition: height 0.3s ease-out; } </style>