1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
| import { getRect } from '../common/utils';
| function useAnimation(context, expanded, mounted, height) {
| const animation = wx.createAnimation({
| duration: 0,
| timingFunction: 'ease-in-out',
| });
| if (expanded) {
| if (height === 0) {
| animation.height('auto').top(1).step();
| }
| else {
| animation
| .height(height)
| .top(1)
| .step({
| duration: mounted ? 300 : 1,
| })
| .height('auto')
| .step();
| }
| context.setData({
| animation: animation.export(),
| });
| return;
| }
| animation.height(height).top(0).step({ duration: 1 }).height(0).step({
| duration: 300,
| });
| context.setData({
| animation: animation.export(),
| });
| }
| export function setContentAnimate(context, expanded, mounted) {
| getRect(context, '.van-collapse-item__content')
| .then((rect) => rect.height)
| .then((height) => {
| useAnimation(context, expanded, mounted, height);
| });
| }
|
|