diff --git a/apps/viewer/src/pages/embed/ReactionLayer.vue b/apps/viewer/src/pages/embed/ReactionLayer.vue index 07c4fdb..5e9c6be 100644 --- a/apps/viewer/src/pages/embed/ReactionLayer.vue +++ b/apps/viewer/src/pages/embed/ReactionLayer.vue @@ -30,13 +30,15 @@ const COLORS = ['#FF6B7A', '#FF8B98'] as const; const DRIFTS = ['-8px', '5px', '8px'] as const; const MAX_ACTIVE = 8; const STAGGER_MS = 300; -/** 常驻节奏:400–800ms 随机间隔一颗(1.6s 生命周期下稳态 3–5 颗在屏, - * 与事件心共享同屏上限 8——事件到来时仍有余量)。 */ -const AMBIENT_MIN_MS = 400; -const AMBIENT_MAX_MS = 800; -/** 常驻心纵向分布带(视口坐标):避开顶部 44px 操作区,下缘留 24px。 */ -const AMBIENT_TOP_MIN = 56; -const AMBIENT_TOP_MAX = 232; +/** 常驻节奏(2026-09-23 用户反馈"太稀疏"):160–320ms 随机间隔一颗 + * (1.6s 生命周期下稳态 ≈6–8 颗在屏,贴近同屏上限但不顶满)。 */ +const AMBIENT_MIN_MS = 160; +const AMBIENT_MAX_MS = 320; +/** 常驻心纵向分布带(视口坐标;2026-09-23 用户反馈"太靠上"下移): + * 原点集中在下半带(140–244px),上浮 110px 后到达窗口上部——视觉重心 + * 从底部涌起,不再贴近顶部操作区。 */ +const AMBIENT_TOP_MIN = 140; +const AMBIENT_TOP_MAX = 244; /** 全局序号(尺寸/颜色/漂移按 n%3 轮转——与效果示例 burst() 一致)。 */ let particleSeq = 0;