use-scroll-animate 1.2.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +125 -58
- package/LICENSE +21 -21
- package/README.md +256 -214
- package/README_ja.md +106 -69
- package/README_zh.md +106 -69
- package/dist/index.d.mts +316 -0
- package/dist/index.d.ts +316 -0
- package/dist/index.esm.js +1249 -697
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1263 -708
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1249 -0
- package/dist/index.mjs.map +1 -0
- package/dist/index.umd.js +13 -14
- package/dist/index.umd.js.map +1 -1
- package/dist/types/core.d.ts +41 -7
- package/dist/types/index.d.ts +36 -33
- package/dist/types/presets.d.ts +15 -15
- package/dist/types/react.d.ts +29 -18
- package/dist/types/sequence.d.ts +38 -0
- package/dist/types/stagger.d.ts +25 -0
- package/dist/types/types.d.ts +153 -123
- package/dist/types/vue.d.ts +28 -18
- package/package.json +81 -35
- package/CONTRIBUTING.md +0 -76
- package/examples/react/App.tsx +0 -61
- package/examples/vanilla/index.html +0 -201
- package/rollup.config.js +0 -41
- package/src/core.ts +0 -373
- package/src/index.ts +0 -48
- package/src/presets.ts +0 -148
- package/src/react.ts +0 -175
- package/src/types.ts +0 -161
- package/src/vue.ts +0 -118
- package/tsconfig.json +0 -17
package/README_ja.md
CHANGED
|
@@ -1,69 +1,106 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
# use-scroll-animate 🚀
|
|
4
|
-
|
|
5
|
-
**軽量(~
|
|
6
|
-
|
|
7
|
-
[](https://github.com/HarrisonCN/use-scroll-animate/releases)
|
|
8
|
-
[](https://github.com/HarrisonCN/use-scroll-animate)
|
|
9
|
-
[](https://opensource.org/licenses/MIT)
|
|
10
|
-
|
|
11
|
-
[English](./README.md) | [简体中文](./README_zh.md)
|
|
12
|
-
|
|
13
|
-
</div>
|
|
14
|
-
|
|
15
|
-
## なぜ `use-scroll-animate` なのか?
|
|
16
|
-
|
|
17
|
-
2025年、パフォーマンスはすべてです。従来のスクロールアニメーションライブラリは、重い依存関係をバンドルしたり、古いスクロールイベントリスナーに依存したり、特定のフレームワークを強制したりすることがよくあります。
|
|
18
|
-
|
|
19
|
-
`use-scroll-animate` は違います:
|
|
20
|
-
- ⚡ **依存関係なし**:純粋な Vanilla JS/TypeScript。
|
|
21
|
-
- 🚀 **高パフォーマンス**:`IntersectionObserver` とネイティブの `Web Animations API`
|
|
22
|
-
- 🪶 **超軽量**:Gzip
|
|
23
|
-
- 🧩 **フレームワークに依存しない**:Vanilla JS、React、Vue、Svelteなどとシームレスに動作。一流の React Hooks と Vue Composables を内蔵。
|
|
24
|
-
- ♿ **アクセシブル**:`prefers-reduced-motion` を標準でサポート。
|
|
25
|
-
|
|
26
|
-
## インストール
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
npm install use-scroll-animate
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## クイックスタート (Vanilla JS / HTML)
|
|
33
|
-
|
|
34
|
-
最も簡単な方法は、HTML の `data-sa` 属性を使用することです。
|
|
35
|
-
|
|
36
|
-
```html
|
|
37
|
-
<!-- 1. 要素に data-sa 属性を追加 -->
|
|
38
|
-
<div data-sa data-sa-animation="fade-in-up" data-sa-duration="800">
|
|
39
|
-
スクロールされるとアニメーションします!
|
|
40
|
-
</div>
|
|
41
|
-
|
|
42
|
-
<script type="module">
|
|
43
|
-
// 2. インポートして初期化
|
|
44
|
-
import ScrollAnimate from 'use-scroll-animate';
|
|
45
|
-
ScrollAnimate.init();
|
|
46
|
-
</script>
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## v1.
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# use-scroll-animate 🚀
|
|
4
|
+
|
|
5
|
+
**軽量(~5KB gzipped)、依存関係なしのモダンWeb向けスクロールアニメーションライブラリ。**
|
|
6
|
+
|
|
7
|
+
[](https://github.com/HarrisonCN/use-scroll-animate/releases)
|
|
8
|
+
[](https://github.com/HarrisonCN/use-scroll-animate)
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
|
|
11
|
+
[English](./README.md) | [简体中文](./README_zh.md) | [日本語](./README_ja.md)
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
## なぜ `use-scroll-animate` なのか?
|
|
16
|
+
|
|
17
|
+
2025年、パフォーマンスはすべてです。従来のスクロールアニメーションライブラリは、重い依存関係をバンドルしたり、古いスクロールイベントリスナーに依存したり、特定のフレームワークを強制したりすることがよくあります。
|
|
18
|
+
|
|
19
|
+
`use-scroll-animate` は違います:
|
|
20
|
+
- ⚡ **依存関係なし**:純粋な Vanilla JS/TypeScript。
|
|
21
|
+
- 🚀 **高パフォーマンス**:`IntersectionObserver` とネイティブの `Web Animations API` で駆動。デフォルトではスクロールイベントリスナーなし(オプトインのスクロール進捗モードは、対象要素が画面内にある間だけ passive・rAF スロットルのリスナーを1つ使用)、レイアウトスラッシングなし。
|
|
22
|
+
- 🪶 **超軽量**:Gzip後コア約4.8KB(`sequence`・`staggerChildren`・React/Vue ヘルパーを含む全体で約6.1KB)。
|
|
23
|
+
- 🧩 **フレームワークに依存しない**:Vanilla JS、React、Vue、Svelteなどとシームレスに動作。一流の React Hooks と Vue Composables を内蔵。
|
|
24
|
+
- ♿ **アクセシブル**:`prefers-reduced-motion` を標準でサポート。
|
|
25
|
+
|
|
26
|
+
## インストール
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install use-scroll-animate
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## クイックスタート (Vanilla JS / HTML)
|
|
33
|
+
|
|
34
|
+
最も簡単な方法は、HTML の `data-sa` 属性を使用することです。
|
|
35
|
+
|
|
36
|
+
```html
|
|
37
|
+
<!-- 1. 要素に data-sa 属性を追加 -->
|
|
38
|
+
<div data-sa data-sa-animation="fade-in-up" data-sa-duration="800">
|
|
39
|
+
スクロールされるとアニメーションします!
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<script type="module">
|
|
43
|
+
// 2. インポートして初期化
|
|
44
|
+
import ScrollAnimate from 'use-scroll-animate';
|
|
45
|
+
ScrollAnimate.init();
|
|
46
|
+
</script>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## v1.4.0 の新機能 ✨
|
|
50
|
+
|
|
51
|
+
- **本当のスクロール進捗 `progressMode: 'scroll'`**(オプトイン):`onProgress` はデフォルトで要素の表示比率を返すため、画面より高い要素では 1 に到達しません。有効にすると、要素の上端がビューポート下端に達したとき `0`、下端がビューポート上端を抜けたとき `1` になります。パララックスも同じ進捗を使用します。HTML では `data-sa-progress="scroll"`。ヘルパー `getScrollProgress(el, root?)` もエクスポートされています。
|
|
52
|
+
|
|
53
|
+
```js
|
|
54
|
+
ScrollAnimate.observe('.chapter', {
|
|
55
|
+
progressMode: 'scroll',
|
|
56
|
+
onProgress: (el, p) => el.style.setProperty('--progress', p),
|
|
57
|
+
});
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
- **動的に追加された子要素のスタッガー**:`staggerChildren()`(Vanilla)と `useScrollStagger()`(React、**Vue にも新たに対応**)に `observeChildren: true` を追加。`MutationObserver` で後から追加された子要素(無限リスト、「もっと見る」)を検出します。表示前に追加された要素はスタッガーに加わり、表示後に追加された要素はビューポートに入ったときにバッチ単位でスタッガー再生されます。
|
|
61
|
+
|
|
62
|
+
```js
|
|
63
|
+
import { staggerChildren } from 'use-scroll-animate';
|
|
64
|
+
const stop = staggerChildren(document.querySelector('#feed'), { stagger: 60, observeChildren: true });
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
- **タイムライン `sequence()`**:複数要素のアニメーションを連結。各ステップは前のステップの終了後に開始し、`gap` で間隔(負の値で重ね合わせ)、`at` で絶対開始時刻を指定できます。`trigger` を指定するとその要素が表示されたときに一度だけ自動再生します。
|
|
68
|
+
|
|
69
|
+
```js
|
|
70
|
+
import { sequence } from 'use-scroll-animate';
|
|
71
|
+
const tl = sequence([
|
|
72
|
+
{ target: '.hero h1', animation: 'fade-in-up', duration: 700 },
|
|
73
|
+
{ target: '.hero p', animation: 'blur-in', gap: -300 },
|
|
74
|
+
{ target: '.hero .btn', animation: 'scale-up', stagger: 80 },
|
|
75
|
+
], { trigger: '.hero' });
|
|
76
|
+
await tl.play(); // すべて完了すると resolve。tl.cancel() で停止し要素は表示されたまま
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
- **新しいプリセット**:`scale-up`、`blur-in-up`、`flip-up`、`flip-down`、`rotate-left`、`rotate-right`、clip-path による `clip-up`、`clip-down`、`clip-left`、`clip-right`、`clip-circle`。
|
|
80
|
+
- **メモリ使用量の削減**:`once` 要素はアニメーション開始後に自動でレジストリから削除されます(パララックス/`onProgress` が必要な要素を除く)。`WeakSet` で記憶されるため、`init()`/`observe()` で再生されることはありません。従来の挙動は `createScrollAnimate({ autoUnregister: false })`。
|
|
81
|
+
- **正しい `exports` マップ**:Node ESM は `dist/index.mjs`、CommonJS は `dist/index.js` に解決され、それぞれ対応する型定義付き。従来の `main`/`module`/`unpkg` と `dist/*` のディープインポートも引き続き利用可能。
|
|
82
|
+
|
|
83
|
+
## v1.2.0 の新機能
|
|
84
|
+
|
|
85
|
+
- **一度だけ実行 (Once)**:アニメーション実行後に監視を自動停止し、リソースを節約。
|
|
86
|
+
- **オフセット (Offset)**:要素がビューポートに入ってから何ピクセル後にアニメーションを開始するかを指定可能。
|
|
87
|
+
- **新しいプリセット**:`shimmer`(シマー)、`pulse`(パルス)、`swing`(スイング)を追加。
|
|
88
|
+
- **多言語サポート**:中国語と日本語のドキュメントを追加。
|
|
89
|
+
|
|
90
|
+
## 主な設定
|
|
91
|
+
|
|
92
|
+
| オプション | 型 | デフォルト | 説明 |
|
|
93
|
+
|--------|------|---------|-------------|
|
|
94
|
+
| `animation` | `string` \| `string[]` | `'fade-in-up'` | プリセット名またはプリセットの配列 |
|
|
95
|
+
| `duration` | `number` | `600` | アニメーションの長さ (ms) |
|
|
96
|
+
| `delay` | `number` | `0` | アニメーションの遅延 (ms) |
|
|
97
|
+
| `once` | `boolean` | `true` | 一度だけ実行するかどうか |
|
|
98
|
+
| `offset` | `number` | `0` | アニメーションを開始するビューポートのオフセット (px) |
|
|
99
|
+
| `parallax` | `object` | `{}` | パララックス効果の設定 |
|
|
100
|
+
| `stagger` | `number` | `0` | 同じバッチで表示される兄弟要素ごとの追加遅延 (ms) |
|
|
101
|
+
| `onProgress` | `(el, progress) => void` | – | スクロール進捗のコールバック (0–1) |
|
|
102
|
+
| `progressMode` | `'ratio'` \| `'scroll'` | `'ratio'` | 進捗の計算方法:表示比率または本当のスクロール進捗 |
|
|
103
|
+
|
|
104
|
+
## ライセンス
|
|
105
|
+
|
|
106
|
+
このプロジェクトは MIT ライセンスの下でライセンスされています - 詳細は [LICENSE](LICENSE) ファイルを参照してください。
|
package/README_zh.md
CHANGED
|
@@ -1,69 +1,106 @@
|
|
|
1
|
-
<div align="center">
|
|
2
|
-
|
|
3
|
-
# use-scroll-animate 🚀
|
|
4
|
-
|
|
5
|
-
**一个轻量级(~
|
|
6
|
-
|
|
7
|
-
[](https://github.com/HarrisonCN/use-scroll-animate/releases)
|
|
8
|
-
[](https://github.com/HarrisonCN/use-scroll-animate)
|
|
9
|
-
[](https://opensource.org/licenses/MIT)
|
|
10
|
-
|
|
11
|
-
[English](./README.md) | [日本語](./README_ja.md)
|
|
12
|
-
|
|
13
|
-
</div>
|
|
14
|
-
|
|
15
|
-
## 为什么选择 `use-scroll-animate`?
|
|
16
|
-
|
|
17
|
-
在 2025 年,性能至关重要。传统的滚动动画库通常捆绑了沉重的依赖,依赖过时的滚动事件监听器,或者强制你使用特定的框架。
|
|
18
|
-
|
|
19
|
-
`use-scroll-animate` 的设计初衷截然不同:
|
|
20
|
-
- ⚡ **零依赖**:纯原生 JS/TypeScript 编写。
|
|
21
|
-
- 🚀 **高性能**:由 `IntersectionObserver` 和原生 `Web Animations API`
|
|
22
|
-
- 🪶 **极轻量**:Gzip
|
|
23
|
-
- 🧩 **框架无关**:完美支持原生 JS、React、Vue、Svelte 等。内置一流的 React Hooks 和 Vue Composables。
|
|
24
|
-
- ♿ **无障碍**:原生支持 `prefers-reduced-motion`。
|
|
25
|
-
|
|
26
|
-
## 安装
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
npm install use-scroll-animate
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## 快速上手 (原生 JS / HTML)
|
|
33
|
-
|
|
34
|
-
最简单的方法是通过 HTML 的 `data-sa` 属性。
|
|
35
|
-
|
|
36
|
-
```html
|
|
37
|
-
<!-- 1. 为元素添加 data-sa 属性 -->
|
|
38
|
-
<div data-sa data-sa-animation="fade-in-up" data-sa-duration="800">
|
|
39
|
-
当滚动到我时,我会动起来!
|
|
40
|
-
</div>
|
|
41
|
-
|
|
42
|
-
<script type="module">
|
|
43
|
-
// 2. 导入并初始化
|
|
44
|
-
import ScrollAnimate from 'use-scroll-animate';
|
|
45
|
-
ScrollAnimate.init();
|
|
46
|
-
</script>
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
## v1.
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# use-scroll-animate 🚀
|
|
4
|
+
|
|
5
|
+
**一个轻量级(~5KB gzipped)、零依赖的现代 Web 滚动动画库。**
|
|
6
|
+
|
|
7
|
+
[](https://github.com/HarrisonCN/use-scroll-animate/releases)
|
|
8
|
+
[](https://github.com/HarrisonCN/use-scroll-animate)
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
|
|
11
|
+
[English](./README.md) | [简体中文](./README_zh.md) | [日本語](./README_ja.md)
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
## 为什么选择 `use-scroll-animate`?
|
|
16
|
+
|
|
17
|
+
在 2025 年,性能至关重要。传统的滚动动画库通常捆绑了沉重的依赖,依赖过时的滚动事件监听器,或者强制你使用特定的框架。
|
|
18
|
+
|
|
19
|
+
`use-scroll-animate` 的设计初衷截然不同:
|
|
20
|
+
- ⚡ **零依赖**:纯原生 JS/TypeScript 编写。
|
|
21
|
+
- 🚀 **高性能**:由 `IntersectionObserver` 和原生 `Web Animations API` 驱动。默认不监听滚动事件(可选的滚动进度模式仅在被追踪元素可见时使用一个 passive、rAF 节流的监听器),无布局抖动。
|
|
22
|
+
- 🪶 **极轻量**:Gzip 后核心约 4.8KB(含 `sequence`、`staggerChildren` 与 React/Vue 辅助在内全部约 6.1KB)。
|
|
23
|
+
- 🧩 **框架无关**:完美支持原生 JS、React、Vue、Svelte 等。内置一流的 React Hooks 和 Vue Composables。
|
|
24
|
+
- ♿ **无障碍**:原生支持 `prefers-reduced-motion`。
|
|
25
|
+
|
|
26
|
+
## 安装
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm install use-scroll-animate
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## 快速上手 (原生 JS / HTML)
|
|
33
|
+
|
|
34
|
+
最简单的方法是通过 HTML 的 `data-sa` 属性。
|
|
35
|
+
|
|
36
|
+
```html
|
|
37
|
+
<!-- 1. 为元素添加 data-sa 属性 -->
|
|
38
|
+
<div data-sa data-sa-animation="fade-in-up" data-sa-duration="800">
|
|
39
|
+
当滚动到我时,我会动起来!
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<script type="module">
|
|
43
|
+
// 2. 导入并初始化
|
|
44
|
+
import ScrollAnimate from 'use-scroll-animate';
|
|
45
|
+
ScrollAnimate.init();
|
|
46
|
+
</script>
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## v1.4.0 新特性 ✨
|
|
50
|
+
|
|
51
|
+
- **真实滚动进度 `progressMode: 'scroll'`**(可选):`onProgress` 默认返回元素的可见比例,对高于屏幕的元素永远到不了 1。开启后进度为:元素顶部到达视口底部时为 `0`,底部离开视口顶部时为 `1`。视差同样使用该进度。HTML 写法:`data-sa-progress="scroll"`;另导出辅助函数 `getScrollProgress(el, root?)`。
|
|
52
|
+
|
|
53
|
+
```js
|
|
54
|
+
ScrollAnimate.observe('.chapter', {
|
|
55
|
+
progressMode: 'scroll',
|
|
56
|
+
onProgress: (el, p) => el.style.setProperty('--progress', p),
|
|
57
|
+
});
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
- **动态子元素交错动画**:`staggerChildren()`(原生)与 `useScrollStagger()`(React,**现已支持 Vue**)新增 `observeChildren: true`。通过 `MutationObserver` 监听后续新增的子元素(无限列表、“加载更多”):显现前新增的会加入交错序列,显现后新增的在滚入视口时按批次交错播放。
|
|
61
|
+
|
|
62
|
+
```js
|
|
63
|
+
import { staggerChildren } from 'use-scroll-animate';
|
|
64
|
+
const stop = staggerChildren(document.querySelector('#feed'), { stagger: 60, observeChildren: true });
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
- **时间线 `sequence()`**:串联多个元素的动画。每一步在上一步结束后开始;`gap` 设置间隔(负值表示重叠),`at` 设置绝对开始时间;`trigger` 可在元素进入视口时自动播放一次。
|
|
68
|
+
|
|
69
|
+
```js
|
|
70
|
+
import { sequence } from 'use-scroll-animate';
|
|
71
|
+
const tl = sequence([
|
|
72
|
+
{ target: '.hero h1', animation: 'fade-in-up', duration: 700 },
|
|
73
|
+
{ target: '.hero p', animation: 'blur-in', gap: -300 },
|
|
74
|
+
{ target: '.hero .btn', animation: 'scale-up', stagger: 80 },
|
|
75
|
+
], { trigger: '.hero' });
|
|
76
|
+
await tl.play(); // 全部完成后 resolve;tl.cancel() 停止并保持元素可见
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
- **新预设**:`scale-up`、`blur-in-up`、`flip-up`、`flip-down`、`rotate-left`、`rotate-right`,以及 clip-path 揭示 `clip-up`、`clip-down`、`clip-left`、`clip-right`、`clip-circle`。
|
|
80
|
+
- **更省内存**:`once` 元素动画触发后自动从注册表移除(仍需视差/`onProgress` 的除外),并记录在 `WeakSet` 中,`init()`/`observe()` 不会重复播放。如需旧行为可设置 `createScrollAnimate({ autoUnregister: false })`。
|
|
81
|
+
- **规范的 `exports` 字段**:Node ESM 解析到 `dist/index.mjs`,CommonJS 解析到 `dist/index.js`,均带对应类型声明;原有 `main`/`module`/`unpkg` 与 `dist/*` 深层导入保持可用。
|
|
82
|
+
|
|
83
|
+
## v1.2.0 新特性
|
|
84
|
+
|
|
85
|
+
- **单次触发 (Once)**:动画触发后自动停止观察,节省资源。
|
|
86
|
+
- **视口偏移 (Offset)**:支持设置元素进入视口多少像素后才触发动画。
|
|
87
|
+
- **新预设**:新增 `shimmer`(流光)、`pulse`(脉冲)、`swing`(摇摆)。
|
|
88
|
+
- **多语言支持**:新增中文和日文文档。
|
|
89
|
+
|
|
90
|
+
## 核心配置
|
|
91
|
+
|
|
92
|
+
| 选项 | 类型 | 默认值 | 描述 |
|
|
93
|
+
|--------|------|---------|-------------|
|
|
94
|
+
| `animation` | `string` \| `string[]` | `'fade-in-up'` | 预设名称或预设数组 |
|
|
95
|
+
| `duration` | `number` | `600` | 动画持续时间 (ms) |
|
|
96
|
+
| `delay` | `number` | `0` | 动画延迟 (ms) |
|
|
97
|
+
| `once` | `boolean` | `true` | 是否只触发一次 |
|
|
98
|
+
| `offset` | `number` | `0` | 触发动画的视口偏移量 (px) |
|
|
99
|
+
| `parallax` | `object` | `{}` | 视差效果配置 |
|
|
100
|
+
| `stagger` | `number` | `0` | 同批次显现的兄弟元素之间的额外延迟 (ms) |
|
|
101
|
+
| `onProgress` | `(el, progress) => void` | – | 滚动进度回调 (0–1) |
|
|
102
|
+
| `progressMode` | `'ratio'` \| `'scroll'` | `'ratio'` | 进度计算方式:可见比例或真实滚动进度 |
|
|
103
|
+
|
|
104
|
+
## 许可证
|
|
105
|
+
|
|
106
|
+
本项目采用 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件。
|