HOVER · 悬停交互
参数调改
PLAYGROUND
涟漪颜色--ripple_color
文字颜色--text_color
扩散时长--dur_ms
2501200
起始缩放--start_scale
0.050.6
涟漪浓度--ripple_opacity
0.10.8
涟漪直径倍率--size_factor
1.53.5
实现要点
NOTES- 01
点击时 JS 在 pointerdown 坐标处插入一个圆形 span,直径 = 按钮较长边 × 直径倍率,保证从任意点击点扩散都能盖满按钮四角。
- 02
涟漪动画只动 transform 和 opacity(合成器路径),半径由元素尺寸定死、缩放交给 scale,全程零重排;animationend 后 remove 自毁,不积累 DOM。
- 03
按钮 overflow:hidden + isolation:isolate 把涟漪裁进按钮内,且负层级内容不会逃逸到页面底层。
- 04
直径倍率是唯一的 JS 型参数,从 CSS 变量 --size_factor 用 getComputedStyle 读取,Playground 调参后无需重新绑定事件。
- 05
prefers-reduced-motion 下动画时长压到 0.01ms(涟漪闪现即逝)且自动演示停发,点击仍保留瞬时位置反馈。
- 06
预览自动演示:无交互 4s 后每 2.6s 在按钮内随机位置自动泛一圈涟漪;一旦用户点击,4s 内自动演示让位。
源代码
SOURCE
加载源代码…