css 边框流光效果

今天在开发官网的时候,参考了 deno 官网的边框流光样式:

这里记录一下。

梯度渐变的妙用

这里其实是用了梯度渐变 conic-gradient,他指的是圆锥形变化的梯度:

css 复制代码
--border-gradient-angle: 0turn;

background-image: conic-gradient(from var(--border-gradient-angle) at 50% 50%, transparent, #70ffaf 14%, transparent 17%)

上面的代码,指的是从第 0 转位置(中间垂直向上)开始,在中心点位置放置渐变,效果如下:

不会用的可以看官方解释 conic-gradient

然后我们加个旋转动画:

css 复制代码
animation: buttonBorderSpin 9s linear infinite 0ms;

@keyframes buttonBorderSpin {
  0% {
    --border-gradient-angle: 0turn;
  }

  100% {
    --border-gradient-angle: 1turn;
  }
}

这个的意思就是说,线性旋转,旋转一整周(1turn),并周期循环的动画:

伪边框

这样你是不是就有思路了?!

对了,在这个div内部再盖一个div,让他小一号,留出一个伪边框的位置不就行了。

html 复制代码
<div class="demo">
  <div class="demo-content">
    旋转流光
  </div>
</div>
css 复制代码
.demo {
  background-image: conic-gradient(from var(--border-gradient-angle) at 50% 50%, transparent, #70ffaf 14%, transparent 17%);
  background-size: contain;
  padding: 1px;  // 留出1个像素的位置
  animation: buttonBorderSpin 9s linear infinite 0ms;
}

.demo-content {
  width: 100%;
  height: 100%;
  background-color: black;
}

看看效果:

改变旋转点位置看看

上面的例子是扫描线沿着面板中心旋转的,我们将旋转点换一个位置:

css 复制代码
background-image: conic-gradient(from var(--border-gradient-angle) at 30% -30%, transparent 25%, #70ffaf 75%, transparent);

旋转点定位到了元素外边,相当于外部有个光源找到了内部,会产生一种幻影的效果:

按照同样的方式添加动画和遮罩 content,看看效果:


本文只是给出了开发需要的两种动效,你可以根据自己的需要来设置自己的边框流光样式。

源码:边框流光效果

相关推荐
Peter-Code8 小时前
微前端避坑指南:主应用与子应用的高度及滚动条协调
css·前端框架·微前端
梦帮科技1 天前
Next.js 16 模块化单体实战:App Router、领域模块与 Route Handler 分层
css·数据结构·链表·正则表达式·node.js·json·html5
我的div丢了肿么办1 天前
顶部区域固定,左侧区域滚动,右侧区域滚动,彼此独立
前端·css
抓不住时间的沙2 天前
Butterfly主题 5.7 导航栏添加相册同时设置相册入口密码
css·python·node.js
我家猫叫佩奇2 天前
🦭 厌倦了千篇一律的线性图标?Naive Icons 正式开源
前端·javascript·css
無限進步D2 天前
Java Web 前端 简介
java·开发语言·前端·css·html·css3·web
是立不是利2 天前
CSS 入门与进阶:从选择器到响应式布局的完整指南
前端·css
無限進步D2 天前
VSCode 简介+安装+JavaWeb前端常用插件+简单配置
java·开发语言·css·vscode·html·css3·插件
Solara3 天前
中文字体子集化实录:3.2MB → 200KB 的完整脚本、踩坑清单与三条反直觉经验
前端·css·架构
CoderYanger3 天前
Java EE 进阶:2.3 JavaScript
java·开发语言·前端·javascript·css·职场和发展·java-ee