有趣的css - 圆形渐变光晕动效

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是一个科技感的加载动画效果,适用于科技感网站加载页面。

《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。


目录

  • 整体效果
  • 核心代码
    • html 代码
    • css 部分代码
  • 完整代码如下
    • html 页面
    • css 样式
    • 页面渲染效果

整体效果

知识点:
1️⃣ background-image 过渡属性
2️⃣ animation 动画属性
3️⃣ box-shadow 阴影属性
4️⃣ filter 滤镜属性
5️⃣ flex 布局
6️⃣ :after 伪元素选择器

思路:
绘制一个渐变圆形,然后遮盖掉里面大部分,只留外层一点边框效果,然后使用动画属性让其旋转起来。

适用于科技感网站加载页面。


核心代码部分,简要说明了写法思路;完整代码在最后,可直接复制到本地运行。

核心代码

html 代码

<div class="light-round82">div>

按钮开关主体代码结构。

css 部分代码

.light-round82{
width:120px;
height:120px;
border-radius:50%;
position: relative;
background-image:linear-gradient(0deg,#FA8BFF 20%,#2BFF88 80%);
box-shadow:0 4px 20px #FA8BFF,0 -4px 20px #2BFF88;
filter:blur(2px);
display: flex;
justify-content: center;
align-items: center;
animation: eff82 2s linear infinite;
}
.light-round82:after{
content:'';
width:112px;
height:112px;
border-radius:50%;
background-color:#000;
position: absolute;
filter:blur(8px);
}
@keyframes eff82{
to{
transform:rotate(360deg);
}
}

1、绘制一个圆形,定义基本样式,设置 background-image 属性,利用 linear-gradient 属性值形成渐变背景;并且设置 box-shadow 属性,定义两层阴影值。

2、利用 filter 滤镜属性,设置一点模糊值 blur(2px),让圆形模糊一点,设置成 flex 布局;然后再给圆形元素增加 animation 动画属性,定义关键帧,让圆形元素 360deg 旋转。

3、在 .light-round82 元素基础上,利用 :after 创建一个伪元素,同样定义成圆形元素,只比 .light-round82 圆形小一点,然后定义 position 让小圆形平行垂直居中,只显示出一点边框效果,最后给小圆形也加上一点模糊滤镜效果,让边缘过渡更自然一点。

完整代码如下

html 页面

DOCTYPE html>
<html lang="zh">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="style.css">
<title>圆形渐变光晕动效title>
head>
<body>
<div class="app">
<div class="light-round82">div>
div>
body>
html>

css 样式

.app{
width:100%;
height:100vh;
background-color:#000;
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
.light-round82{
width:120px;
height:120px;
border-radius:50%;
position: relative;
background-image:linear-gradient(0deg,#FA8BFF 20%,#2BFF88 80%);
box-shadow:0 4px 20px #FA8BFF,0 -4px 20px #2BFF88;
filter:blur(2px);
display: flex;
justify-content: center;
align-items: center;
animation: eff82 2s linear infinite;
}
.light-round82:after{
content:'';
width:112px;
height:112px;
border-radius:50%;
background-color:#000;
position: absolute;
filter:blur(8px);
}
@keyframes eff82{
to{
transform:rotate(360deg);
}
}

页面渲染效果

以上就是所有代码,以及简单的思路,希望对你有一些帮助或者启发。


[1] 原文阅读

[2] 《有趣的css》,访问网址:funcss.liujueyi.cn,欢迎大家访问。


我是 Just,这里是「设计师工作日常」,求点赞求关注!

你可能感兴趣的:(有趣的css,css,前端,动效设计,ux/ui,交互设计,加载动画)