# deck-api · 播放器 API
> 实现:`lib/player/deck.js`。规则见 `.claude/rules/player.md`。
## 页面接入
```html
```
## window.SCREEN_TIMELINES
- 键 = 屏的 `data-tl` 属性值;值为 `function(ctx) -> gsap.timeline`。
- `ctx`:`{ el, q(sel), qAll(sel), count(sel, to, opts) }`。
- `q/qAll` 只在屏内查询。
- `count` 数字滚动,返回 gsap tween,`tl.add(ctx.count(...), pos)` 使用;`opts: {to, duration, ease, dec, sep}`。
## window.deck API
| 方法 | 说明 |
|---|---|
| `deck.init()` | 初始化:收集 `.screen`、建导航、绑键盘。页面必须在 SCREEN_TIMELINES 定义后调用 |
| `deck.init({ mode:'shell', planEl, planUrl })` | 总控容器模式(见下「总控容器模式」) |
| `deck.next()` / `deck.prev()` | 下一屏 / 上一屏(门控) |
| `deck.jump(i)` | 跳第 i 屏 |
| `deck.nextChapter()` / `deck.prevChapter()` | 下一章 / 上一章(读 deck-config 的 next/prev) |
| `deck.goFile(file, dir)` | 跳指定章节文件 |
| `deck.showPage(i)` / `deck.loadPage(i)` | 总控模式:切到第 i 页 / 预加载第 i 页(iframe) |
## 屏与门控
- 屏:``。无 `data-tl` 的屏 = 无动画屏,↓ 即切。
- 视频门控:屏内 `