故障毛刺文字特效(RGB 分离 + clip-path 切片 CSS 源码)

CSS 许可:自研原创

故障毛刺文字特效源码:伪元素 RGB 分离、clip-path 切片错位、自动播放与悬停触发两种模式,纯 CSS 实现,适合赛博朋克风格标题。

效果演示(真实可交互)

下方第一行文字自动循环播放故障效果,第二行需要把鼠标放上去才触发毛刺,适合不想干扰阅读的场景。

粤喵组件站

悬停触发毛刺

完整代码

HTML 结构:.glitch 元素通过 data-text 属性提供伪元素的复制文本:

<h2 class="glitch auto" data-text="粤喵组件站">粤喵组件站</h2>
<h2 class="glitch hover-only" data-text="悬停触发毛刺">悬停触发毛刺</h2>

核心 CSS:用两个伪元素各复制一份文字,分别着红绿两色并切片错位:

.glitch { position: relative; color: #e8e8e8; }
.glitch::before,
.glitch::after {
  content: attr(data-text);   /* 复制文字 */
  position: absolute; top: 0; left: 0;
  width: 100%;
  overflow: hidden;
  pointer-events: none;
}
.glitch::before { color: #ff3b6b; animation: sliceA 1.8s steps(1, end) infinite, shiftA 1.8s linear infinite alternate; }
.glitch::after  { color: #38f9d7; animation: sliceB 2.6s steps(1, end) infinite, shiftB 2.6s linear infinite alternate; }

/* 随机切片:clip-path 每次瞬间跳到不同高度区间 */
@keyframes sliceA {
  0%   { clip-path: inset(10% 0 62% 0); }
  20%  { clip-path: inset(55% 0 12% 0); }
  40%  { clip-path: inset(28% 0 48% 0); }
  60%  { clip-path: inset(70% 0 6% 0); }
  80%  { clip-path: inset(42% 0 35% 0); }
  100% { clip-path: inset(8% 0 78% 0); }
}
/* 错位漂移 */
@keyframes shiftA { from { transform: translate(-4px, 2px); } to { transform: translate(4px, -2px); } }

悬停触发模式:默认隐藏伪元素,hover 时才播放:

.hover-only::before, .hover-only::after { opacity: 0; }
.hover-only:hover::before { opacity: 1; animation: sliceA 1.2s steps(1, end) infinite, shiftA .6s linear infinite alternate; }
.hover-only:hover::after  { opacity: 1; animation: sliceB 1.5s steps(1, end) infinite, shiftB .8s linear infinite alternate; }

参数说明

参数默认值说明
切片高度inset(10% 0 62% 0)控制故障条纹的位置与厚度
steps(1, end)—让切片瞬间跳变,产生断裂感
漂移距离±4pxRGB 分离错位幅度
动画时长1.8s / 2.6s两个伪元素用不同时长避免同步
悬停模式hover-only是否仅在 hover 时触发

兼容性与性能

常见问题

Q: 伪元素复制文字是中文会乱码吗? 不会,attr(data-text) 直接取属性值,中文、英文、符号都能正确显示,注意属性值和元素文本保持一致。

Q: 想调故障频率? 改动画时长,如 1.8s 改成 0.8s 会更急促;想偶尔故障一次,可以把 animation-iteration-count 设为固定次数并用延迟。

Q: 文字太多导致卡顿? 缩短标题字数,或把 overflow: hidden 范围缩小;也可以考虑只在 hover 时触发。

Q: 可以商用吗? 可以,粤喵自研原创组件,免费商用无需署名。

许可与来源

  • 许可证:自研原创 —— 粤喵自研原创,可免费用于个人与商业项目,无需署名。查看来源公示与许可清单
  • 来源:粤喵团队原创自研(从效果思路到代码实现均为独立完成,未直接复制第三方代码)
  • 首次发布: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(缓动曲线)等属性即可,代码中有注释说明。

✍️ 作者与审核