CSS-流光特效

前言

在 UI 设计中,合理的动效能极大地提升产品的科技感与交互体验。本文将分享两种高频使用的流光特效:旋转边框流光 (常用于 VIP 会员卡片)与线性扫描流光(常用于加载状态或按钮高亮)。

一、 旋转边框流光 (Border Rotating Glow)

1. 实现效果:

2. 实现原理:背景旋转裁剪


很多同学第一反应是会尝试直接给 `border` 设置渐变,但 CSS 原生 `border` 并不支持动画旋转。

核心黑科技

  1. 底层放一个巨大的、旋转的渐变色块(通常用伪元素实现)。
  2. 上层盖一个略小的容器(按钮主体)。
  3. 父容器设置 overflow: hidden。 这样,转动的渐变色块被裁剪后,露出的那一圈边缘看起来就像流光在游走。

3. 实现代码

HTML 复制代码
<!-- 外层容器包裹按钮 -->
<div class="glow-wrapper">
  <button class="glow-button">流光按钮</button>
</div>


/* 外层容器:负责流光效果 */
.glow-wrapper {
  position: relative; 
  display: inline-block;
  padding: 4px; /* 控制流光边框的宽度 */
  border-radius: 12px;
  overflow: hidden; /* 关键:裁剪旋转的渐变层 */
}

/* 伪元素:旋转的渐变框 */
.glow-wrapper::before {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(
    45deg,
    #0066ff,
    #00ccff,
    #ccff00,
    #ff9900,
    #ff00cc
  );
  border-radius: 12px;
  z-index: -1;
  animation: rotateGlow 3s linear infinite;
}

/* 内部真实按钮 */
.glow-button {
  height: 42px;
  width: 122px;
  line-height: 42px;
  font-size: 18px;
  color: white;
  background: #121212;
  border-radius: 8px; /* 略小于 wrapper 的圆角 */
}
@keyframes rotateGlow {
  0% {
    transform: rotate(0deg);
  }
  40% {
    transform: rotate(180deg);
  }
  60% {
    transform: rotate(180deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

二、 线性扫描流光 (Linear Scanning Glow)

1. 实现效果:

2. 实现原理:背景位移

这种效果模拟了光束扫过物体的视觉感,常用于骨架屏或高级按钮。

核心思路

  • 渐变设计 :设计一个"暗-亮-暗"的 linear-gradient
  • 尺寸放大 :将 background-size 设为 200% 或更大,让"亮点"隐藏在视口之外。
  • 位置动画 :通过改变 background-position,让亮色条从左至右水平穿过。

3. 实现代码

HTML 复制代码
<div class="glow-wrapper">扫描流光</div>

.glow-wrapper {
  position: relative;
  padding: 20px 40px; /* 边框厚度 */
  color: white;
  border-radius: 10px;
  font-weight: 800;
  background: linear-gradient(90deg, transparent, #00dbde, transparent);
  background-size: 200% 100%;
  animation: scan 2s linear infinite;
}

@keyframes scan {
  0% {
    background-position: -200% 0%;
  }
  100% {
    background-position: 200% 0%;
  }
}
相关推荐
小鹿软件办公13 小时前
Firefox 149 正式推送:多任务处理升级,五大新功能详解
前端·firefox
evering13 小时前
遍历备份 Chrome | Edge 浏览器插件目录
前端·chrome·crx
WiChP13 小时前
【V0.1B4】从零开始的2D游戏引擎开发之路
前端·javascript·游戏引擎
意法半导体STM3213 小时前
【官方原创】STM32CubeProgrammer与STM32 Bootloader连接全流程实战指南 LAT1631
开发语言·前端·javascript·stm32·单片机·嵌入式硬件
薛定谔的悦13 小时前
《储能系统中的故障定位》
java·服务器·前端
慧一居士13 小时前
Vue项目中使用的首选的依赖库如VueUse等,使用场景和使用示例介绍
前端·vue.js
带娃的IT创业者13 小时前
WeClaw-TTS 语音合成实战:pyttsx3 本地引擎与 Edge-TTS 云服务的混合架构.md
前端·tts·ai智能体·openclaw·weclaw
鹏程十八少13 小时前
5.Android 如何用腾讯Shadow在双11电商场景的完整复盘(实战2年),实现热修复(全网最详细实战案例)
android·前端·面试
wl851113 小时前
SAP HCM 公积金超过上限后的计税方案
前端·html
二月夜13 小时前
Vue项目打包为WAR文件部署Tomcat完整指南
前端·vue.js·tomcat