[css]旋转流光效果

实现一个矩形的旋转流光边框效果。

需要使用css属性梯度渐变:链接: conic-gradient,他指的是圆锥形变化的梯度。

html 复制代码
// html
 <div class="demo">
 </div>
css 复制代码
// css
body {
   width: 100%;
   height: 100%;
   background-color: black;
}

.demo {
   width: 400px;
   height: 200px;
   background-image: conic-gradient(from var(--border-gradient-angle) at 50% 50%, transparent, #70ffaf 14%, transparent 17%);
   background-size: contain;
}

@property --border-gradient-angle {
  syntax: "<angle>";
  inherits: true;
  initial-value: 0turn;
}

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

给上面效果加上动画:

css 复制代码
.demo {
    width: 400px;
    height: 200px;
    background-image: conic-gradient(from var(--border-gradient-angle) at 50% 50%, transparent, #70ffaf 14%, transparent 17%);
    background-size: contain;
    animation: buttonBorderSpin 9s linear infinite 0ms;
}
@keyframes buttonBorderSpin {
    0% {
        --border-gradient-angle: 0turn;
    }

    100% {
        --border-gradient-angle: 1turn;
    }
}
@property --border-gradient-angle {
  syntax: "<angle>";
  inherits: true;
  initial-value: 0turn;
}

添加上述代码之后,可以获得一个线性旋转,旋转一整周(1turn)并周期循环的动画。

之后对这个div进行遮挡,在其中添加一个div:

html 复制代码
 <div class="demo">
     <div class="demo-content">
        旋转流光
    </div>
 </div>
css 复制代码
.demo {
    ...
    padding: 1px;
}
 .demo-content {
     width: 100%;
     height: 100%;
     background-color: black;
     color: white;
 }

遮挡后即可看到绕边框一周的旋转流光效果。

改变旋转点还可以获得平移流光效果

css 复制代码
background-image: conic-gradient(from var(--border-gradient-angle) at 30% -30%, transparent 25%, #70ffaf 75%, transparent);
相关推荐
加个鸡腿儿10 小时前
经验分享2:SSR 项目中响应式组件的闪动陷阱与修复实践
前端·css·架构
华仔啊11 小时前
写 CSS 用 px?这 3 个单位能让页面自动适配屏幕
前端·css
菩提小狗11 小时前
Sqli-Labs Less-3 靶场完整解题流程解析-豆包生成
前端·css·less
web小白成长日记16 小时前
CSS 作用域隔离实战:React、Vue 与 Styled Components 的三种范式
前端·css·vue.js·react.js
@@小旭1 天前
实现头部Sticky 粘性布局,并且点击菜单滑动到相应位置
前端·javascript·css
Irene19911 天前
CSS 定位属性(relative、absolute、fixed、sticky)与实用技巧总结
css
我的写法有点潮1 天前
推荐几个国外比较流行的UI库(上)
前端·javascript·css
m0_502724951 天前
vue动态设置背景图片后显示异常
前端·css
@Autowire1 天前
Layout-position
前端·css
神秘的猪头1 天前
🎨 CSS 这种“烂大街”的技术,怎么在 React 和 Vue 里玩出花来?—— 模块化 CSS 深度避坑指南
css·vue.js·react.js