← 返回动效实验室

阻尼弹性抽屉

支持阻尼橡皮筋回弹的底部抽屉(Bottom Sheet):拖出锚点范围会被橡皮筋"拉住",松手根据滑动速度自动吸附到最近的锚点。在下面的手机框里拖动把手试试(手机直接拖)。

实时 Demo
查看完整报告展开抽屉后显示详细数据
趋势对比环比 / 同比切换
设置刷新频率实时 / 5分钟 / 每小时
当前锚点 半展开 40% 松手速度 0 px/ms 橡皮筋拉伸 0px

快速甩动(高速度)会跨过中间锚点直接到顶部;慢慢拖到一半松手则吸附回最近锚点

效果拆解
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 透明度随展开比例线性过渡。
相关效果