纯css实现风暴眼效果

代码语言:html

所属分类:布局界面

代码描述:纯css实现风暴眼效果

代码标签: 暴眼 效果

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">

<style>
html, body {
	padding: 0; margin: 0;
}

body {
	position: relative;
	width: 100vw;
	min-width: 800px;
	height: 100vh;
	min-height: 600px;
	background: linear-gradient(-45deg, #8691b3, #edeef3);
}
	body *, body *:before, body *:after {
		content: '';
		position: absolute;
		top: 50%; left: 50%;
	}


.eye {
	width: 332px; height: 332px;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: #EBEDF3;
	filter: blur(5px);

	animation: eyeAnimation 4s cubic-bezier(1, 0, 1, 1) infinite;
}
@keyframes eyeAnimation {
	0%, 33%, 100% {
		box-shadow: inset -8px -13px 20px -10px rgba(230, 230, 236, 0.04), 64px 55px 40px -40px #38406A, 20px 18px 30px -10px #38406A, inset -70px -50px 60px -30px #4b6398, inset -90px -90px 70px -90px #697398, inset -70px -50px 100px -40px #697398, inset 80px 50px 80px -50px #eeeef3, -25px -15px 50px -10px #F6F6FB, 14px -1px 50px -10px #7e7ea9, 1px 9px 50px -10px #7e7ea9, inset -90px 40px 60px -20px rgba(116, 66, 255, 0.1), inset -90px -120px 60px -20px rgba(116, 66, 255, 0.1);
    transform: translate(-50%, -50%) scale(1.25);
	}
	65% {
		box-shadow: inset -8px -13px 60px -10px rgba(230, 230, 236, 0.2), 44px 35px 20px -20px #687294, 11px 9px 9px -4px #6e799d, inset -100px -70px 40px -110px #6A789C, inset -90px -90px 70px -90px #697398, inset -70px -50px 100px -40px #697398, inset 80px 50px 80px -50px #eeeef3, -25px -15px 30px -10px #F6F6FB;
		transform: translate(-50%, -50%) scale(1);
	}
}


	.eye::after {
		width: 160px; height: 160px;
		border-radius: 50%;
		box-shadow: inset -50px -20px 30px 0px #e7e2f5, inset 100px 10px 20px -27px #2f2c4c, 0px 0px 10px 7px rgba(231, 226, 245, 1);

		animation: pupilAnimationSize 4s cubic-bezier(1, 0, 1, 1) infinite,
							 pupilAnimationView 4s ease infinite;
	}
@keyframes pupilAnimationSize {
	0%, 30%, 100% { transform: translate(-50%, -50%) scale(0.85); }
	40%, 90% 			{ transform: translate(-50%, -50%) scale(0.5); }
}
@keyframes pupilAnimationView {
	0%, 30%, 100% {
		box-shadow: inset -50px -20px 30px 0px #e7e2f5, inset 100px 10px 20px -27px #2f2c4c, 0px 0px 10px 7px rgba(231, 226, 245, 1);
	}
	60%, 66% {
		box-shadow: inset -50px -20px 30px 0px rgba(231, 226, 245, 0), inset 10px 10px 70px -27px rgba(47, 44, 76, 0), 0px 0px 10px 7px hsla(256, 49%, 92%, 0);
	}
	90% {
		box-shadow: inset -50px -20px 30px 0px #e7e2f5, inset 100px 10px 20px -27px #2f2c4c, 0px 0px 10px 7px rgba(231, 226, 245, 1);
	}
}


.circle-1 {
	width: 475px; height: 475px;
	border-radius: 50%;
	border: 1px solid transparent;
	border-right-color: rgba(223, 228, 255, 0.6);

	animation: circle1AnimationOpacity 4s ease infinite,
						 circle1AnimationMove 4s ease infinite;
}
@keyframes circle1AnimationMove {
	00%, 100% 		{ transform: translate(-50%, -50%) rotate(49deg); }
	07% 					{ transform: translate(-50%, -50%) rotate(38deg); }
	12%, 19%, 68% { transform: translate(-50%, -50%) rotate(42deg); }
	26%, 30% 			{ transform: translate(-50%, -50%) rotate(82deg); }
	73% 					{ transform: translate(-50%, -50%) rotate(34deg); }
	87%, 92% 			{ transform: translate(-50%, -50%) rotate(69deg); }
	94% 					{ transform: translate(-50%, -50%) rotate(65deg); }
}
@keyframes circle1AnimationOpacity {
	00%, 27%, 73%, 100% { opacity: 1; }
	30%, 70% 						{ opacity: 0; }
}


.circle-2 {
	width: 475px; height: 475px;
	border-radius: 50%;
	border: 1px solid transparent;
	border-right-color: rgba(223, 228, 255, 0.6);

	animation: circle2AnimationOpacity 4s ease infinite,
						 circle2AnimationMove 4s ease infinite;
}
@keyframes circle2AnimationMove {
	0%, 100% { transform: translate(-50%, -50%) rotate(229deg); }
	9% 			 { transform: translate(-50%, -50%) rotate(220deg); }
	14%, 21% { transform: translate(-50%, -50%) rotate(225deg); }
	29%, 67% { transform: translate(-50%, -50%) rotate(262deg); }
	82% 		 { transform: translate(-50%, -50%) rotate(241deg); }
	90%, 94% { transform: translate(-50%, -50%) rotate(249deg); }
	99% 		 { transform: translate(-50%, -50%) rotate(245deg); }
}
@keyframes circle2AnimationOpacity {
	0%, 27%, 79%, 100% { opacity: 1; }
	30%, 76% 					 { opacity: 0; }
}


.circle-3 {
	left: calc(50% + 93px);
	top: calc(50% - 189px);
	width: 106px; height: 280px;
	overflow: hidden;
}
	.circle-3::before {
		left: -275%;
		top: -4%;
		width: 393px;
		height: 393px;
		border-radius: 50%;
		border: 1px solid transparent;
		border-right-color: rgba(223, 228, 255, 0.6);

		animation: circle3Animation 4s ease infinite;
	}
@keyframes circle3Animation {
	0%   { transform: rotate(-3deg); }
	20%  { transform: rotate(-107deg); }
	79%  { transform: rotate(-286deg); }
	100% { transform: rotate(-364deg); }
}


.circle-4 {
	width: 295px; height: 295px;
	border-radius: 50%;
	border: 1px solid transparent;
	border-right-color: rgb(251, 251, 251);
	border-left-color: rgba(251, 251, 251, 0.2);

	animation: circle4AnimationMove 4s cubic-bezier(1, 0, 1, 1) infinite,
						 circle4AnimationOpacity 4s ease infinite;
}
@keyframes circle4AnimationMove {
	0%, 100% { transform: translate(-50%, -50%) rotate(219deg) scale(1); }
	6% 			 { transform: translate(-50%, -50%) rotate(221deg) scale(0.9); }
	16% 		 { transform: translate(-50%, -50%) rotate(302deg) scale(0.9); }
	22% 		 { transform: translate(-50%, -50%) rotate(307deg) scale(0.9); }
	29% 		 { transform: translate(-50%, -50%) rotate(312deg) scale(0.93); }
	33% 		 { transform: translate(-50%, -50%) rotate(310deg) scale(0.93); }
	36% 		 { transform: translate(-50%, -50%) rotate(300deg) scale(0.7); }
	39% 		 { transform: translate(-50%, -50%) rotate(220deg) scale(0.92); }
	50%, 57% { transform: translate(-50%, -50%) rotate(248deg) scale(0.92); }
	66% 		 { transform: translate(-50%, -50%) rotate(225deg) scale(0.92); }
	73%, 81% { transform: translate(-50%, -50%) rotate(243deg) scale(0.92); }
	93% 		 { transform: translate(-50%, -50%) rotate(215deg) scale(1); }
}
@keyframes circle4AnimationOpacity {
	00%, 33%, 50%, 100% { opacity: 1; }
	36%, 39% { opacity: 0; }
}


.circle-5 {
	width: 100px; height: 100px;
	transform: translate(-50%, -50%);
	
	animation: circle5AnimationSize 4s cubic-bezier(1, 0, 1, 1) infinite,
						 circle5AnimationView 4s ease infinite;
}
	.circle-5::before {
		width: 173px; height: 173px;
		border-radius: 50%;
		border: 1px solid rgb(251, 251, 251);
		transform: translate(-50%, -50%);
	}
	.circle-5::after {
		width: 177px; height: 177px;
		border-radius: 50%;
		border: 1px solid rgb(251, 251, 251);
		transform: translate(-50%, -50%);
	}
@keyframes circle5AnimationSize {
	0%, 38%, 82.82%, 100% { transform: translate(-50%, -50%) scale(1); }
	45%, 75.44% 					{ transform: translate(-50%, -50%) scale(0.7); }
}
@keyframes circle5AnimationView {
	0%, 5.7%, 7.4%, 9.8%, 11.5%, 14%, 15.6%, 18.9%, 21.3%, 23.8%, 25.4%, 28.7%, 35.3%, 42%, 77.9%, 82.7%, 83.6%, 85.2%, 86.1%, 91.8%, 93.5%, 97.6%, 100% { opacity: 1; }
	2.5%, 6.6%, 8.2%, 10.7%, 14.8%, 18%, 20.5%, 22.1%, 24.6%, 27.9%, 36%, 88.6% { opacity: 0.5; }
	47%, 77.8%, 82.8%, 83.5%, 85.3%, 86%, 90.2%, 92.7%, 96.8%, 99.2% { opacity: 0; }
}


.circle-6 {
	top: 50%; left: 50%;
	width: 190px; height: 190px;
	background: repeating-conic-gradient(from 0deg, rgba(179, 221, 255, 0.4) 0deg 1deg, transparent 1deg 2deg);
	clip-path: url(#bagel1);
	border-radius: 50%;

	animation: circle6Animation 4s cubic-bezier(1, 0, 1, 1) infinite;
}
@keyframes circle6Animation {
	0% {
		transform: translate(-50%, -50%) scale(1);
	}
	8%, 35% {
		transform: translate(-50%, -50%) scale(0.93);
		opacity: 1;
	}
	40%, 90% {
		transform: translate(-50%, -50%) scale(0.2);
		opacity: 0;
	}
	95%, 100% {
		transform: translate(-50%, -50%) scale(1);
		opacity: 1;
	}
}

.circle-7 {
	top: 50%; left: 50%;
	width: 142px; height: 142px;
	filter: blur(1px);

	animation: circle6Animation 4s -0.1s cubic-bezier(1, 0, 1, 1) infinite;
}
	.circle-7::before {
		top: 0; left: 0;
		width: 100%; height: 100%;
		background: repeating-conic-gradient(from 0deg, rgba(114, 87, 187, 0.6) 0deg 2deg, transparent 2deg 8deg);
		clip-path: url(#bagel2);
		border-radius: 50%;
	}


.circle-8 {
	top: 50%; left: 50%;
	width: 120px; height: 120px;
	background: repeating-conic-gradient(from 0deg, rgba(236, 247, 255, 0.68) 0deg 1deg, transparent 1deg 2deg);
	clip-path: url(#bagel3);
	border-radius: 50%;

	animation: circle6Animation 4s -0.13s cubic-bezier(1, 0, 1, 1) infinite;
}


.circle-9 {
	top: 50%; left: 50%;
	width: 76px; height: 76px;
	background: repeating-conic-gradient(from 0deg, rgba(236, 247, 255, 0.68) 0deg 1deg, transparent 1deg 2deg);
	clip-path: url(#bagel4);
	border-radius: 50%;

	animation: circle6Animation 4s -0.16s cubic-bezier(1, 0, 1, 1) infinite;
}


.circle-10 {
	top: 50%; left: 50%;
	width: 190px; height: 190px;
	background: radial-gradient(rgba(230, 245, 255, 0.6), rgba(201, 243, 255, 0.5), rgba(74, 105, 160, 0.3), transparent 70%);
	clip-path: url(#bagel1);
	border-radius: 50%;

	animation: circle10Animation 4s cubic-bezier(1, 0, 1, 1) infinite;
}
@keyframes circle10Animation {
	0% {
		transform: translate(-50%, -50%) scale(1);
	}
	4%, 30% {
		transform: translate(-50%, -50%) scale(0.93);
		opacity: 1;
	}
	35%, 93% {
		transform: translate(-50%, -50%) scale(0);
		opacity: 0;
	}
	98%, 100% {
		transform: translate(-50%, -50%) scale(1);
		opacity: 1;
	}
}


.circle-11 {
	top: 50%; left: 50%;
	width: 190px; height: 190px;
	background: repeating-conic-gradient(from 0deg, rgba(229, 243, 255, 0.1) 0deg 1deg, transparent 1deg 8deg, rgba(229, 243, 255, 0.3) 8deg 9deg, transparent 9deg 10deg, rgba(229, 243, 255, 0.1) 10deg 11deg, transparent 11deg 72deg);
	clip-path: url(#bagel1);
	border-radius: 50%;

	animation: circle11Animation 4s cubic-bezier(1, 0, 1, 1) infinite;
}
@keyframes circle11Animation {
	0%, 98%, 100% {
		transform: translate(-50%, -50%) rotate(0deg);
		opacity: 1;
	}
	15% {
		transform: translate(-50%, -50%) rotate(45deg);
	}
	25% {
		transform: translate(-50%, -50%) rotate(-10deg);
	}
	30% {
		opacity: 1;
	}
	35% {
		transform: translate(-50%, -50%) rotate(-20deg);
		opacity: 0;
	}
	93% {
		transform: translate(-50%, -50%) rotate(80deg);
		opacity: 0;
	}
}


.circle-12 {
	top: 50%; left: 50%;
	width: 190px; height: 190px;
	background: repeating-conic-gradient(from 0deg, rgba(208, 233, 255, 0.2) 20deg 21deg, transparent 21deg 40deg, rgba(192, 223, 249, 0.25) 40deg 41deg, transparent 41deg 43deg, rgba(179, 220, 255, 0.15) 43deg 44deg, transparent 44deg 76deg);
	clip-path: url(#bagel1);
	border-radius: 50%;

	animation: circle12Animation 4s cubic-bezier(1, 0, 1, 1) infinite;
}
@keyframes circle12Animation {
	0%, 96%, 100% {
		transform: translate(-50%, -50%) rotate(0deg);
		opacity: 1;
	}
	10% {
		transform: translate(-50%, -50%) rotate(45deg);
	}
	25% {
		transform: translate(-50%, -50%) rotate(-45deg);
	}
	30% {
		opacity: 1;
	}
	35% {
		transform: translate(-50%, -50%) rotate(50deg);
		opacity: 0;
	}
	93% {
		transform: translate(-50%, -50%) rotate(-90deg);
		opacity: 0;
	}
}


.circle-13 {
	width: 100px; height: 100px;
	transform: translate(-50%, -50%);
	animation: circle13AnimationSize 4s cubic-bezier(1, 0, 1, 1) infinite,
						 circle13AnimationView 4s ease infinite;
}
	.circle-13::before {
		width: 110px; height: 110px;
		border-radius: 50%;
		border: 1px solid rgb(251, 251, 251);
		transform: translate(-50%, -50%);
	}
	.circle-13::after {
		width: 120px; height: 120px;
		border-radius: 50%;
		border: 1px solid rgba(251, 251, 251, 0.5);
		transform: translate(-50%, -50%);
	}
@keyframes circle13AnimationSize {
	0%, 32%, 86%, 100% { transform: translate(-50%, -50%) scale(1); }
	38%, 82% { transform: translate(-50%, -50%) scale(0.2); }
}
@keyframes circle13AnimationView {
	/* подвигать */
	0% { opacity: 1; }
	2.5% { opacity: 0.5; }
	5.7% { opacity: 1; }
	6.6% { opacity: 0.5; }
	7.4% { opacity: 1; }
	8.2% { opacity: 0.5; }
	9.8% { opacity: 1; }
	10.7% { opacity: 0.5; }
	11.5%, 14% { opacity: 1; }
	14.8% { opacity: 0.5; }
	15.6% { opacity: 1; }
	18% { opacity: 0.5; }
	18.9% { opacity: 1; }
	20.5% { opacity: 0.5; }
	21.3% { opacity: 1; }
	22.1% { opacity: 0.5; }
	23.8% { opacity: 1; }
	24.6% { opacity: 0.5; }
	25.4% { opacity: 1; }
	27.9% { opacity: 0.5; }
	28.7%, 32% { opacity: 1; }
	38% { opacity: 0; }
	82% { opacity: 0; }
	86% { opacity: 1; }
	88.6% { opacity: 0.5; }
	90.2% { opacity: 0; }
	91.8% { opacity: 1; }
	92.7% { opacity: 0; }
	93.5% { opacity: 1; }
	96.8% { opacity: 0; }
	97.6% { opacity: 1; }
	99.2% { opacity: 0; }
	100% { opacity: 1; }
}

.circle-14 {
	width: 100px; height: 100px;
	transform: translate(-50%, -50%);
	animation: circle13AnimationSize 4s -0.15s cubic-bezier(1, 0, 1, 1) infinite,
						 circle14AnimationView 4s ease infinite;
}
	.circle-14::before {
		width: 70px; height: 70px;
		border-radius: 50%;
		border: 1px solid rgba(251, 251, 251, 0.5);
		transform: translate(-50%, -50%);
	}
	.circle-14::after {
		width: 95px; height: 95px;
		border-radius: 50%;
		border: 1px solid rgba(251, 251, 251, 0.3);
		transform: translate(-50%, -50%);
	}

@keyframes circle14AnimationView {
	/* подвигать */
	0% { opacity: 1; }
	2.5% { opacity: 0.5; }
	5.7% { opacity: 1; }
	6.6% { opacity: 0.5; }
	7.4% { opacity: 1; }
	8.2% { opacity: 0.5; }
	9.8% { opacity: 1; }
	10.7% { opacity: 0.5; }
	11.5%, 14% { opacity: 1; }
	14.8% { opaci.........完整代码请登录后点击上方下载按钮下载查看

网友评论0