<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>