Skip to content

Commit c5bcbde

Browse files
committed
fix: add animate instance to PageInstance
1 parent 7b37a5c commit c5bcbde

File tree

3 files changed

+88
-1
lines changed

3 files changed

+88
-1
lines changed

packages/taro-runtime/src/dsl/instance.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { Component as Vue3Component } from '@vue/runtime-core'
22
import type { Component, ComponentClass } from 'react'
33
import type { TaroElement } from '../dom/element'
4-
import type { MpEvent, TFunc } from '../interface'
4+
import type { KeyFrame, MpEvent, ScrollTimelineOption, TFunc } from '../interface'
55

66
export interface Instance<T = Record<string, any>> extends Component<T>, Show, PageInstance {
77
tid?: string
@@ -59,6 +59,10 @@ export interface PageInstance extends PageLifeCycle {
5959
renderer?: 'webview' | 'skyline'
6060
/** 获得一个 EventChannel 对象,用于页面间通讯 */
6161
getOpenerEventChannel?(): Record<string, any>
62+
/** 执行关键帧动画,详见[动画](https://developers.weixin.qq.com/miniprogram/dev/framework/view/animation.html) */
63+
animate?(selector: string, keyFrames: KeyFrame[], duration: number, callback: () => void): void
64+
/** 滚动驱动的动画,详见[动画](https://developers.weixin.qq.com/miniprogram/dev/framework/view/animation.html) */
65+
animate?(selector: string, keyFrames: KeyFrame[], duration: number, scrollTimeline: ScrollTimelineOption): void
6266
}
6367

6468
interface Show {
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
/** @ignore */
2+
export interface KeyFrame {
3+
/** 关键帧的偏移,范围[0-1] */
4+
offset?: number
5+
/** 动画缓动函数 */
6+
ease?: string
7+
/** 基点位置,即 CSS transform-origin */
8+
transformOrigin?: string
9+
/** 背景颜色,即 CSS background-color */
10+
backgroundColor?: string
11+
/** 底边位置,即 CSS bottom */
12+
bottom?: number | string
13+
/** 高度,即 CSS height */
14+
height?: number | string
15+
/** 左边位置,即 CSS left */
16+
left?: number | string
17+
/** 宽度,即 CSS width */
18+
width?: number | string
19+
/** 不透明度,即 CSS opacity */
20+
opacity?: number | string
21+
/** 右边位置,即 CSS right */
22+
right?: number | string
23+
/** 顶边位置,即 CSS top */
24+
top?: number | string
25+
/** 变换矩阵,即 CSS transform matrix */
26+
matrix?: number[]
27+
/** 三维变换矩阵,即 CSS transform matrix3d */
28+
matrix3d?: number[]
29+
/** 旋转,即 CSS transform rotate */
30+
rotate?: number
31+
/** 三维旋转,即 CSS transform rotate3d */
32+
rotate3d?: number[]
33+
/** X 方向旋转,即 CSS transform rotateX */
34+
rotateX?: number
35+
/** Y 方向旋转,即 CSS transform rotateY */
36+
rotateY?: number
37+
/** Z 方向旋转,即 CSS transform rotateZ */
38+
rotateZ?: number
39+
/** 缩放,即 CSS transform scale */
40+
scale?: number[]
41+
/** 三维缩放,即 CSS transform scale3d */
42+
scale3d?: number[]
43+
/** X 方向缩放,即 CSS transform scaleX */
44+
scaleX?: number
45+
/** Y 方向缩放,即 CSS transform scaleY */
46+
scaleY?: number
47+
/** Z 方向缩放,即 CSS transform scaleZ */
48+
scaleZ?: number
49+
/** 倾斜,即 CSS transform skew */
50+
skew?: number[]
51+
/** X 方向倾斜,即 CSS transform skewX */
52+
skewX?: number
53+
/** Y 方向倾斜,即 CSS transform skewY */
54+
skewY?: number
55+
/** 位移,即 CSS transform translate */
56+
translate?: Array<number | string>
57+
/** 三维位移,即 CSS transform translate3d */
58+
translate3d?: Array<number | string>
59+
/** X 方向位移,即 CSS transform translateX */
60+
translateX?: number | string
61+
/** Y 方向位移,即 CSS transform translateY */
62+
translateY?: number | string
63+
/** Z 方向位移,即 CSS transform translateZ */
64+
translateZ?: number | string
65+
composite?: 'replace' | 'add' | 'accumulate' | 'auto'
66+
easing?: string
67+
[property: string]: any
68+
}
69+
70+
/** @ignore */
71+
export interface ScrollTimelineOption {
72+
/** 指定滚动元素的选择器(只支持 scroll-view),该元素滚动时会驱动动画的进度 */
73+
scrollSource: string
74+
/** 指定滚动的方向。有效值为 horizontal 或 vertical */
75+
orientation?: string
76+
/** 指定开始驱动动画进度的滚动偏移量,单位 px */
77+
startScrollOffset: number
78+
/** 指定停止驱动动画进度的滚动偏移量,单位 px */
79+
endScrollOffset: number
80+
/** 起始和结束的滚动范围映射的时间长度,该时间可用于与关键帧动画里的时间 (duration) 相匹配,单位 ms */
81+
timeRange: number
82+
}

packages/taro-runtime/src/interface/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
export * from './animate'
12
export * from './element'
23
export * from './event'
34
export * from './event-target'

0 commit comments

Comments
 (0)