useReveal
入场编排:容器内所有 .lx-reveal / .lx-reveal-blur 元素进入视口 15% 时加 .in 播放上浮入场(只播一次)。动画类来自 effects.css。
用法
stagger 用元素内联 --lx-i(每级约 90ms):
第一张 --lx-i:0
第二张 --lx-i:1
第三张 --lx-i:2
API
useReveal(root?: Ref<HTMLElement | null>): { refresh: () => void }
| 项 | 说明 |
|---|---|
| root | 观察范围(缺省为全文档) |
| refresh() | 动态插入内容后调用,重新扫描未播放的元素 |
行为与边界:
- 只播一次,滚出视口不倒放
- SSR 安全;无
IntersectionObserver或prefers-reduced-motion: reduce时直接全部显示(不播动画)
.lx-reveal 元素禁挂响应式 :class
运行时改 :class 会抹掉 useReveal 加上的 .in,元素直接消失。需要响应式状态用 data-* 属性或 :style 表达。