用途:让一个主行动按钮(如首屏的“Get started”“Try it”)在光标接近时轻微向光标方向偏移,随后弹回,从而显得更有生命力。它属于 motion-anything,遵循 MOTION-SPEC.md。
主要能力:自动绑定到带有 .magnetic 类的按钮;通过 data-magnet-strength 控制吸引强度,建议保持较小值(约 0.2–0.4)以维持微妙效果;仅使用 transform,并在 pointerleave 时复位。
使用方式:将 magnetic-button.css 与 magnetic-button.js 复制进项目并引入,然后标记按钮,例如:<button class="magnetic" data-magnet-strength="0.3">Get started</button>。脚本会自动附加到 .magnetic 元素。React 中可在 useEffect 内调用 attachMagnetic(ref.current),并同样加上减弱动效与触屏判断。
适用场景:仅建议用于 1–2 个主行动目标,避免在按钮密集的界面中使用,否则会显得混乱。
限制:在 prefers-reduced-motion 下以及 (hover: none) 的纯触屏设备上会自动禁用;纯触屏环境没有光标,因此不适用。资料未提供更多关于兼容性、体积或性能的细节。