支持阻尼橡皮筋回弹的底部抽屉(Bottom Sheet):拖出锚点范围会被橡皮筋"拉住",松手根据滑动速度自动吸附到最近的锚点。在下面的手机框里拖动把手试试(手机直接拖)。
AI 提示词
实现支持阻尼橡皮筋回弹的底部抽屉(Bottom Sheet):三个锚点(收起 peek / 半展开 / 全展开),只使用 transform: translateY 移动;拖拽时若超出最上/最下锚点范围,用橡皮筋阻力函数 displaced = range × (1 − 1/(|overshoot|/c + 1))(c≈250px)压缩实际位移;松手时按最近 4 个采样点估算滑动速度,速度超过 0.5px/ms 则朝速度方向吸附到下一个锚点,否则吸附到最近锚点;回弹用 rAF 弹簧或 cubic-bezier(.22,1.2,.36,1) 0.35s 带轻微过冲;抽屉把手区域 touch-action:none,背景 scrim 透明度随展开比例线性过渡。实现支持阻尼橡皮筋回弹的底部抽屉(Bottom Sheet):三个锚点(收起 peek / 半展开 / 全展开),只使用 transform: translateY 移动;拖拽时若超出最上/最下锚点范围,用橡皮筋阻力函数 displaced = range × (1 − 1/(|overshoot|/c + 1))(c≈250px)压缩实际位移;松手时按最近 4 个采样点估算滑动速度,速度超过 0.5px/ms 则朝速度方向吸附到下一个锚点,否则吸附到最近锚点;回弹用 rAF 弹簧或 cubic-bezier(.22,1.2,.36,1) 0.35s 带轻微过冲;抽屉把手区域 touch-action:none,背景 scrim 透明度随展开比例线性过渡。
- 橡皮筋系数 c 越小"拉不动"的感觉越强;速度阈值 0.5 越小越容易被"甩飞"。
- 提示词内置完整算法,AI 能一次写对(这类手势逻辑最容易翻车的就是速度采样)。