其他
绘制通知徽章、新功能高亮、错误提示等注意力动画时,用迪士尼…
适用于任何需要吸引用户注意的 UI 动画,如徽章、通知点、错误抖动、促销横幅,并按注意力预算避免过度干扰。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
绘制通知徽章、新功能高亮、错误提示等注意通用
解决思路
- 总体:将迪士尼 12 条动画原则应用到吸引注意力的动效中。
- Squash & Stretch:用缩放脉冲吸引注意,按 1.0 → 1.1 → 1.0 循环,利用周边视觉。
- Anticipation:在注意力动画开始前短暂停顿,先蓄势再释放。
- Staging:把注意力元素放在用户会看到的位置,例如角落徽章、行内高亮。
- Straight Ahead vs Pose-to-Pose:设计注意力状态:静止(rest)、激活/脉冲(active/pulsing)、已确认(acknowledged)。
- Follow Through & Overlapping:徽章先脉冲,然后计数更新;错开多个注意力信号。
- Slow In/Slow Out:脉冲使用 ease in/out;平滑振荡比尖锐弹跳更不刺眼。
- Arcs:抖动动画沿弧线运动,左右移动并带轻微垂直振荡。
- Secondary Action:用脉冲 + 发光 + 颜色变化实现最大注意力(谨慎使用)。
- Timing:单次注意力抓取 300-500ms。
- Timing:重复脉冲 2000-3000ms 周期。
- Timing:紧急脉冲 1000-1500ms 周期。
- Timing:衰减:3-5 个循环或 10 秒后停止。
- Exaggeration:夸张缩放至 1.2、使用亮色、大胆运动。
- Solid Drawing:注意力元素必须仍感觉属于 UI,不能漂浮或脱离。
- Appeal:注意力应像有帮助的通知,而不是侵略性要求。
- Badge Pulse:300ms,2-3 个循环,动画结束后停止。
- Notification Dot:2000ms,3 个循环,总计 6 秒。
- New Feature:500ms,2 个循环,保持微妙。
- Error Shake:400ms,1 个循环,无衰减。
- Urgent Alert:1000ms,无限循环,直到被关闭。
- Promotional:3000ms,2 个循环,6 秒。
- Pulse attention CSS:`.badge-pulse { animation: pulse 2000ms ease-in-out 3; } @keyframes pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.15); } }`
- Subtle glow CSS:`.glow-attention { animation: glow 2000ms ease-in-out 3; } @keyframes glow { 0%, 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); } 50% { box-shadow: 0 0 0 8px rgba(59, 130, 246, 0.3); } }`
- Error shake CSS:`.shake { animation: shake 400ms ease-in-out; } @keyframes shake { 0%, 100% { transform: translateX(0); } 20%, 60% { transform: translateX(-8px); } 40%, 80% { transform: translateX(8px); } }`
- Ring animation (notification):`.ring { animation: ring 2500ms ease-in-out 2; } @keyframes ring { 0%, 100% { transform: rotate(0); } 10%, 30% { transform: rotate(10deg); } 20%, 40% { transform: rotate(-10deg); } 50%, 100% { transform: rotate(0); } }`
- Attention Budget(Web Animations API):`const attention = element.animate([{ transform: 'scale(1)' }, { transform: 'scale(1.15)' }, { transform: 'scale(1)' }], { duration: 2000, iterations: 3 });`
- Attention Budget(CSS + setTimeout):`setTimeout(() => { element.classList.remove('attention'); }, 6000);`
- Key Rule:同一时间最多 1 个注意力动画可见。
- Key Rule:3-5 个循环后自动停止(最多 10 秒)。
- Key Rule:提供永久关闭的方式。
- Key Rule:绝不用于非必要内容。
- Key Rule:`prefers-reduced-motion`:只显示静态指示,不播放动画。
- Key Rule:紧急动画必须提供音频/触觉替代方案以满足无障碍。
适用边界 · 注意事项
- 非必要内容不要使用注意力动画。
- 不要在同一时间显示超过 1 个注意力动画;紧急/促销也不应挤压核心内容。
- 用户设置 `prefers-reduced-motion` 或需要无障碍替代时,不要强制播放动画,改用静态指示/音频/触觉。