svg+css+js实现数据流量流动示意图动画效果代码
代码语言:html
所属分类:动画
代码描述:svg+css+js实现数据流量流动示意图动画效果代码
代码标签: svg css js 数据 流量 流动 示意图 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/normalize.5.0.css">
<style>
@charset "UTF-8";
body {
width: 100vw;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
}
.container {
z-index: 0;
position: relative;
display: flex;
align-items: center;
width: 1080px;
height: 400px;
overflow: hidden;
background: url("//repo.bfw.wiki/bfwrepo/images/xiangce/OJYTLba8CQweWIq.png") no-repeat;
background-size: cover;
}
.container .logos {
display: flex;
align-items: center;
width: 400px;
height: 320px;
overflow: hidden;
border-radius: 0 200px 200px 0;
background: radial-gradient(166.55% 283.86% at -39.88% 50%, rgba(255, 255, 255, 0) 65.64%, rgba(0, 238, 255, 0.48) 99%);
}
.container .logos .logos-wrap img {
height: 40px;
}
.container .logos .logos-wrap .box {
display: flex;
width: 100%;
justify-content: space-around;
margin-bottom: 30px;
}
.container .logos .logos-wrap .box:last-child {
margin: unset;
}
.container .shenzhi-logo {
position: relative;
left: -60px;
display: flex;
justify-content: center;
align-items: center;
width: 100px;
height: 100px;
border-radius: 100px;
box-shadow: 0px 0px 40px rgba(164, 168, 197, 0.24);
background-color: white;
}
.container .shenzhi-logo img {
z-index: 99;
width: 60px;
}
.container .account {
position: relative;
left: 90px;
}
.container .lines {
position: absolute;
width: 482px;
height: 100%;
z-index: -1;
left: 423px;
top: 107px;
}
.container .lines .line-1 svg {
position: absolute;
}
.container .lines .line-1 svg:nth-of-type(3) {
position: absolute;
right: 0;
top: 1px;
}
.container .lines .line-2 {
position: absolute;
top: -49px;
}
.container .lines .line-2 svg {
position: absolute;
}
.container .lines .line-3 {
position: absolute;
top: 40px;
}
.container .lines .line-3 svg {
position: absolute;
}
.container .lines .line-3 svg:nth-of-type(3) {
position: relative;
right: -89%;
top: 87px;
}
.results {
position: absolute;
right: 150px;
z-index: 99;
}
.results .icon {
position: relative;
display: flex;
justify-content: center;
align-items: center;
width: 52px;
height: 52px;
background: #ffffff;
box-shadow: 0px 8px 40px rgba(164, 168, 197, 0.4);
border-radius: 59px;
margin-bottom: 38px;
}
.results .icon::after {
position: absolute;
right: -100%;
content: "";
display: block;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
font-weight: 500;
font-size: 16px;
line-height: 16px;
color: #3b426b;
}
.results .icon:last-child {
margin-bottom: unset;
}
.results .icon:nth-of-type(1)::after {
content: "下单";
}
.results .icon:nth-of-type(2)::after {
content: "领劵";
}
.results .icon:nth-of-type(3)::after {
content: "发帖";
}
.results .icon:nth-of-type(4)::after {
content: "个人中心";
right: -83px;
}
#line-1 {
stroke-dasharray: 60, 600;
stroke-dashoffset: 24;
-webkit-animation: line1 3s cubic-bezier(0.77, 0, 0.175, 1) forwards infinite;
animation: line1 3s cubic-bezier(0.77, 0, 0.175, 1) forwards infinite;
}
@-webkit-keyframes line1 {
to {
stroke-dashoffset: -620;
}
}
@keyframes line1 {
to {
stroke-dashoffset: -620;
}
}
#line-2 {
stroke-dasharray: 60, 600;
stroke-dashoffset: 24;
-webkit-animation: line2 3s cubic-bezier(0.77, 0, 0.175, 1) forwards infinite 0.6s;
animation: line2 3s cubic-bezier(0.77, 0, 0.175, 1) forwards infinite 0.6s;
}
@-webkit-keyframes line2 {
to {
stroke-dashoffset: -620;
}
}
@keyframes line2 {
to {
stroke-dashoffset: -620;
}
}
#line-3 {
stroke-dasharray: 60, 600;
stroke-dashoffset: 24;
-webkit-animation: line3 3s cubic-bezier(0.77, 0, 0.175, 1) forwards infinite 0.2s;
animation: line3 3s cubic-bezier(0.77, 0, 0.175, 1) forwards infinite 0.2s;
}
@-webkit-keyframes line3 {
to {
stroke-dashoffset: -620;
}
}
@keyframes line3 {
to {
stroke-dashoffset: -620;
}
}
.container .shenzhi-logo {
-webkit-animation: ripple 0.8s linear infinite;
animation: ripple 0.8s linear infinite;
}
@-webkit-keyframes ripple {
0% {
box-shadow: 0 0 0 0 rgba(71, 198, 230, 0), 0 0 0 40px rgba(71, 198, 230, 0.18);
}
100% {
box-shadow: 0 0 0 40px rgba(71, 198, 230, 0.18), 0 0 0 60px rgba(71, 198, 230, 0);
}
}
@keyframes ripple {
0% {
box-shadow: 0 0 0 0 rgba(71, 198, 230, 0), 0 0 0 40px rgba(71, 198, 230, 0.18);
}
100% {
box-shadow: 0 0 0 40px rgba(71, 198, 230, 0.18), 0 0 0 60px rgba(71, 198, 230, 0);
}
}
@-webkit-keyframes scale {
50% {
transform: scale(1.15);
}
0%, 100% {
transform: scale(1);
}
}
@keyframes scale {
50% {
transform: scale(1.15);
}
0%, 100% {
transform: scale(1);
}
}
.container .shenzhi-logo::after {
z-index: 0;
border-radius: 100%;
position: absolute;
content: "";
display: block;
width: 100%;
height: 100%;
box-shadow: 0px 0px 40px rgba(164, 168, 197, 0.24);
background-color: white;
transform: scale(1);
-webkit-animation: scale 2.5s linear infinite;
animation: scale 2.5s linear infinite;
}
.logos-1 {
transition: all 0.2s ease;
position: relative;
margin-right: 20px;
will-change: transform;
-webkit-animation: logosMoving 10s linear infinite both 1s;
animation: logosMoving 10s linear infinite both 1s;
}
@-webkit-keyframes logosMoving {
to {
transform: translateX(105%);
}
}
@keyframes logosMoving {
to {
transform: translateX(105%);
}
}
.logos-2 {
transition: all 0.2s ease;
will-change: transform;
-webkit-animation: logosMoving 10s linear infinite both 1s;
animation: logosMoving 10s linear infinite both 1s;
}
.logos-wrap {
position: relative;
left: -100%;
}
.logoShow {
-webkit-animation: logoShow 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards 0.2s;
animation: logoShow 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards 0.2s;
}
@-webkit-keyframes logoShow {
to {
opacity: 1;
transform: scale3d(1, 1, 1);
filter: blur(0);
}
}
@keyframes logoShow {
to {
opacity: 1;
transform: scale3d(1, 1, 1);
filter: blur(0);
}
}
.logos-wrap img {
opacity: 0;
transform: scale3d(0, 0, 0);
filter: blur(20px);
transition: all 0.3s ease-out;
margin: 4px 14px;
will-change: transform;
}
.rule {
position: absolute;
z-index: 99;
right: 180px;
}
.rule img {
z-index: 99;
width: 94px;
top: 4px;
right: -67px;
}
.rule div:nth-of-type(1) {
position: relative;
right: 100px;
top: -40px;
}
.rule div:nth-of-type(1)::after {
content: "";
display: block;
width: 40px;
height: 40px;
opacity: 0.5;
border-radius: 100%;
background: radial-gradient(50% 50% at 50% 50%, #ffffff 0%, #f88787 100%);
position: absolute;
transform: scale(0);
-webkit-animation: popShow3 4s cubic-bezier(0.5, 1, 0.89, 1) infinite;
animation: popShow3 4s cubic-bezier(0.5, 1, 0.89, 1) infinite;
}
@-webkit-keyframes popShow3 {
80% {
opacity: 0;
transform: scale(0);
}
91% {
opacity: 0.3;
}
100% {
opacity: 0;
transform: scale(2.4);
}
}
@keyframes popShow3 {
80% {
opacity: 0;
transform: scale(0);
}
91% {
opacity: 0.3;
}
100% {
opacity: 0;
transform: scale(2.4);
}
}
.rule div:nth-of-type(1)::before {
content: "";
display: block;
width: 40px;
height: 40px;
opacity: 0.5;
border-radius: 100%;
background: radial-gradient(50% 50% at 50% 50%, #ffffff 0%, #f88787 100%);
position: absolute;
transform: scale(0);
-webkit-animation: popShow 4s cubic-bezier(0.5, 1, 0.89, 1) infinite 0.2s;
animation: popShow 4s cubic-bezier(0.5, 1, 0.89, 1) infinite 0.2s;
}
@-webkit-keyframes popShow {
80% {
opacity: 0;
transform: scale(0);
}
91% {
opacity: 0.5;
}
100% {
opacity: 0;
transform: scale(2);
}
}
@keyframes popShow {
80% {
opacity: 0;
transform: scale(0);
}
91% {
opacity: 0.5;
}
100% {
opacity: 0;
transform: scale(2);
}
}
.rule div:nth-of-type(2) {
position: relative;
right: 125px;
top: -90px;
}
.rule div:nth-of-type(2)::after {
content: "";
display: block;
width: 40px;
height: 40px;
opacity: 0.5;
border-radius: 100%;
background: radial-gradient(50% 50% at 50% 50%, #ffffff 0%, #2e2e2e 100%);
position: absolute;
transform: scale(0);
-webkit-animation: popShow2 4s cubic-bezier(0.5, 1, 0.89, 1) infinite 0.35s;
animation: popShow2 4s cubic-bezier(0.5, 1, 0.89, 1) infinite 0.35s;
}
@-webkit-keyframes popShow2 {
80% {
opacity: 0;
transform: scale(0);
}
91% {
opacity: 0.1;
}
100% {
opacity: 0;
transform: scale(2.4);
}
}
@keyframes popShow2 {
80% {
opacity: 0;
transform: scale(0);
}
91% {
opacity: 0.1;
}
100% {
opacity: 0;
transform: scale(2.4);
}
}
.rule div:nth-of-type(2)::before {
content: "";
display: block;
width: 40px;
height: 40px;
opacity: 0.5;
border-radius: 100%;
background: radial-gradient(50% 50% at 50% 50%, #ffffff 0%, #2e2e2e 100%);
position: absolute;
transform: scale(0);
-webkit-animation: popShow 4s cubic-bezier(0.5, 1, 0.89, 1) infinite 0.6s;
animation: popShow 4s cubic-bezier(0.5, 1, 0.89, 1) infinite 0.6s;
}
@keyframes popShow {
80% {
opacity: 0;
transform: scale(0);
}
91% {
opacity: 0.4;
}
100% {
opacity: 0;
transform: scale(2);
}
}
.rule-2 {
position: absolute;
}
.rule-1 {
position: absolute;
}
.box-1,
.box-3 {
left: -20%;
position: relative;
}
.dr {
position: absolute;
bottom: 16px;
right: 16px;
width: 100px;
}
</style>
</head>
<body>
<!-- partial:index.partial.html -->
<div class="container">
<div class="logos">
<div class="logos-wrap logos-1">
<div class="box-1 box">
<img src="//repo.bfw.wiki/bfwrepo/images/xiangce/PMUofLmJFgt5HEY.png" alt="" class="logoShow" />
<img src="//repo.bfw.wiki/bfwrepo/images.........完整代码请登录后点击上方下载按钮下载查看
网友评论0