@@ -2,15 +2,15 @@ import { addClass, removeClass } from '../../vc-util/Dom/class';
2
2
import { nextTick } from 'vue' ;
3
3
import type { CSSMotionProps } from '../../_util/transition' ;
4
4
5
- const listAnimation = ( name ) : CSSMotionProps => {
5
+ const listAnimation = ( name = 'ant-motion-collapse' ) : CSSMotionProps => {
6
6
return {
7
7
name,
8
8
appear : true ,
9
9
css : true ,
10
10
onBeforeEnter : ( node : HTMLDivElement ) => {
11
- addClass ( node , name ) ;
12
11
node . style . height = '0px' ;
13
12
node . style . opacity = '0' ;
13
+ addClass ( node , name ) ;
14
14
} ,
15
15
onEnter : ( node : HTMLDivElement ) => {
16
16
nextTick ( ( ) => {
@@ -19,14 +19,16 @@ const listAnimation = (name): CSSMotionProps => {
19
19
} ) ;
20
20
} ,
21
21
onAfterEnter : ( node : HTMLDivElement ) => {
22
- if ( node ) removeClass ( node , name ) ;
23
- node . style . height = undefined ;
24
- node . style . opacity = undefined ;
22
+ if ( node ) {
23
+ removeClass ( node , name ) ;
24
+ node . style . height = null ;
25
+ node . style . opacity = null ;
26
+ }
25
27
} ,
26
28
onBeforeLeave : ( node : HTMLDivElement ) => {
27
29
addClass ( node , name ) ;
28
30
node . style . height = `${ node . offsetHeight } px` ;
29
- node . style . opacity = undefined ;
31
+ node . style . opacity = null ;
30
32
} ,
31
33
onLeave : ( node : HTMLDivElement ) => {
32
34
setTimeout ( ( ) => {
@@ -35,9 +37,13 @@ const listAnimation = (name): CSSMotionProps => {
35
37
} ) ;
36
38
} ,
37
39
onAfterLeave : ( node : HTMLDivElement ) => {
38
- if ( node ) removeClass ( node , name ) ;
39
- node . style . height = undefined ;
40
- node . style . opacity = undefined ;
40
+ if ( node ) {
41
+ removeClass ( node , name ) ;
42
+ if ( node . style ) {
43
+ node . style . height = null ;
44
+ node . style . opacity = null ;
45
+ }
46
+ }
41
47
} ,
42
48
} ;
43
49
} ;
0 commit comments