SuperAPI AI 工具集

reveal-hover-effect

设计与创作

查看项目

更新于 10-15 20:21

技能介绍

用途:构建跟随光标的聚光灯揭示效果,用柔边径向遮罩露出下方与之对齐的第二张图片,适合悬停上色、前后对比、X 光透视等场景。

主要能力:叠加两张尺寸、构图、裁剪与焦点一致的图片,底图常显,揭示图置于其上并施加带羽化的 mask-image;在组件本地坐标中跟踪指针,通过 requestAnimationFrame 缓动渲染位置,指针离开时收起遮罩。默认用 CSS mask 而非每帧生成 canvas data URL。

关键默认值:桌面聚光半径 260px,紧凑型 140–220px;指针缓动 0.1,半径缓动 0.14;遮罩停靠点 0%(alpha 1)、40%(1)、60%(0.75)、75%(0.4)、88%(0.12)、100%(0)。初始只显示底图,退出时半径缓动回 0,保留原生光标。

必要用法:标记使用真实 <img>,外层 figure 带 data-reveal-hover 与 data-reveal-radius;两张图 object-fit 与 object-position 必须一致,1 像素差异在聚光区内会很明显。指针坐标用 getBoundingClientRect() 转换 clientX/clientY,避免滚动后漂移;只在数值变化时运行动画循环,settle 后停止。React、Vue、Svelte 中需在挂载后初始化,并在卸载时调用清理函数,不要每次渲染新建循环。

限制与无障碍:粗指针或触屏默认显示静态底图,遮罩叠加层隐藏;若揭示内容包含有意义信息,需为触屏与键盘用户提供显式切换控件,不要用悬停承载导航、价格、说明或关键文案。prefers-reduced-motion 下直接更新、取消拖尾缓动并禁用视差。需同时在 Safari 测试 mask-* 与 -webkit-mask-*,will-change 只用于被遮罩的叠加层。可选的网格视差为 48px 网格、透明度约 0.1、漂移限 ±16px、缓动 0.06,减少动态时禁用。