卡片擦除揭示 4 种特效(左右擦除/上下擦除/圆形揭示 CSS 源码)

CSS 许可:自研原创

卡片擦除揭示 4 种玩法:左右滑出、上下滑出、斜向擦除、clip-path 圆形扩散揭示,纯 CSS 实现,适合卡片翻面、隐藏彩蛋、产品对比。

效果演示(真实可交互)

把鼠标移到卡片上,上层封面被”擦除”,露出下层内容。四种玩法分别用 transform 与 clip-path 实现,移出时封面平滑回归。

🔒悬停揭开
🎁惊喜内容
🌙向下揭开
☀️白天模式
🗺️斜向擦除
🧭宝藏坐标
🌗圆形揭示
🌕满月出现

完整代码

HTML 结构:每张卡片包含两层 .sw-face,.sw-front 是封面(z-index 更高),.sw-back 是被揭示的内容层:

<div class="sw-card">
  <div class="sw-face sw-front"><span>🔒</span><em>悬停揭开</em></div>
  <div class="sw-face sw-back"><span>🎁</span><em>惊喜内容</em></div>
</div>
<!-- 加 sw-v / sw-diag / sw-circle 切换玩法 -->

核心 CSS:

.sw-card { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.sw-face { position: absolute; inset: 0; }
.sw-front {
  background: linear-gradient(135deg, #1c2029, #2a3040);
  z-index: 2;
  transition: transform .55s cubic-bezier(.22, .61, .36, 1),
              clip-path .55s cubic-bezier(.22, .61, .36, 1);
}
.sw-back { z-index: 1; }

/* ① 左右擦除 */
.sw-card:hover .sw-front { transform: translateX(-100%); }
/* ② 上下擦除 */
.sw-card.sw-v:hover .sw-front { transform: translateY(-100%); }
/* ③ 斜向擦除 */
.sw-card.sw-diag:hover .sw-front { transform: translate(-100%, -100%); }

/* ④ 圆形揭示:clip-path 圆从中心扩散 */
.sw-circle .sw-front { clip-path: circle(0% at 50% 50%); }
.sw-card.sw-circle:hover .sw-front { clip-path: circle(141.4% at 50% 50%); }

参数说明

参数默认值说明
擦除方向-100%translateX/Y 的位移,控制上下左右
动画时长.55s封面滑出/回位的时间
圆中心位置50% 50%clip-path 圆形扩散的圆心
最终圆半径141.4%覆盖整个矩形所需的最小半径
封面底色#1c2029上层的渐变背景

兼容性与性能

常见问题

Q: 擦除后下层内容看不到,是什么原因? 检查两层 .sw-face 是否都有 position: absolute; inset: 0;,且 .sw-front 的 z-index 高于 .sw-back;另外 .sw-card 需要 overflow: hidden 裁掉滑出的封面。

Q: 想改成对角线固定角度而不是 45°? translate(-100%, -100%) 是 45° 直线;要自定义角度,把位移改为 translate(calc(-100% - 20px), -10%) 之类的组合,或用 rotate 配合滑出。

Q: 圆形揭示的 141.4% 是怎么来的? 这是矩形对角线(√2 ≈ 1.414)的比例,圆半径达到对角线的 141.4% 时才能完全覆盖卡片;圆心里任意位置都要保证这个百分比够大。

Q: 内容层有交互元素,会被封面挡住吗? 封面存在时 z-index 更高,天然挡住点击;滑出后事件会落到下层。若需要下层按钮提前可点,可在 hover 时给封面加 pointer-events: none。

许可与来源

  • 许可证:自研原创 —— 粤喵自研原创,可免费用于个人与商业项目,无需署名。查看来源公示与许可清单
  • 来源:粤喵团队原创自研(从效果思路到代码实现均为独立完成,未直接复制第三方代码)
  • 首次发布:2026-09-01 · 最近更新:2026-09-01
  • 修改日志:2026-09-01 首次发布;2026-09-13 补充许可证与来源标注、复制按钮说明与法务页入口
  • 纠错:联系页面 / min@cactus.asia,2 个工作日内核实处理

常见问题

这个组件可以商用吗?

可以。本组件为粤喵自研原创,可免费用于个人和商业项目,无需署名。

浏览器兼容性如何?

支持所有现代浏览器(Chrome / Firefox / Safari / Edge 最新版本)。旧版 IE 不支持 CSS 动画相关特性。

怎么修改动画参数?

直接调整 CSS 中的 animation-duration(时长)、animation-timing-function(缓动曲线)等属性即可,代码中有注释说明。

✍️ 作者与审核