css实现各种天气状况图标动画效果代码
代码语言:html
所属分类:布局界面
代码描述:css实现各种天气状况图标动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
@import url('https://fonts.googleapis.com/css?family=Work+Sans:200');
:root {
--shadow: #fd6f21;
--ring: currentColor;
--blend1: #fc5830;
--blend2: #f98c24;
--blend-from: 0%;
--blend-to: 100%;
--blend-dir: top right;
}
[icon] {
-webkit-box-flex: 0;
flex: none;
display: none;
position: relative;
font-size: calc(10em + 1vmin);
width: 1em;
height: 1em;
margin: .3em;
border-radius: 100%;
box-shadow: 0 0 0 .05em var(--ring) inset, 0 0 .3em -.03em var(--shadow);
background: -webkit-gradient( linear, , from(var(--blend1)), to(var(--blend2)));
background: linear-gradient( to var(--blend-dir), var(--blend1) var(--blend-from), var(--blend2) var(--blend-to));
/* filter: saturate(0); */
}
/* [icon]:hover {
filter: saturate(1);
} */
[icon]::after {
content: attr(data-label);
position: absolute;
top: calc(100% + 1vmin);
left: 50%;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
font: inherit;
font-size: .15em;
}
[icon='sunny'] {
--shadow: #fd6f21;
--blend1: #fc5830;
--blend2: #f98c24;
--blend-to: 65%;
}
[icon='cloudy'] {
--shadow: #1378bb;
--blend1: #1b9ce2;
--blend2: #1378bb;
--shadow: #c9e8de;
--blend1: #758595;
--blend2: #e0e2e5;
--blend1: #1b9ce2;
--blend-to: 65%;
--blend-to: 90%;
}
[icon='snowy'] {
--shadow: #c9e8de;
--blend1: #758595;
--blend2: #e0e2e5;
--blend-to: 90%;
--blend-dir: bottom left;
}
[icon='stormy'] {
--shadow: #34c6d8;
--blend1: #4b9cc2;
--blend2: #9adbd9;
}
[icon='supermoon'] {
--shadow: #5133a5;
--blend1: #4054b2;
--blend2: #aa4cba;
--blend-to: 65%;
--blend-dir: bottom right;
}
/* SUNNY */
/* --------------------- */
.sun {
position: absolute;
top: 20%;
left: 80%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
width: 40%;
height: 40%;
border-radius: 100%;
background: #ffeb3b;
box-shadow: 0 0 0 .02em var(--ring) inset, 0 0 .3em -.03em var(--shadow);
-webkit-transform-origin: .1em .1em;
transform-origin: .1em .1em;
}
.sun::after {
content: '';
position: absolute;
top: .1em;
left: 0;
will-change: transform;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
width: .1em;
height: .1em;
border-radius: 100%;
background: rgba(255, 255, 255, .1);
box-shadow: 0 0 .1em 0 rgba(255, 255, 255, .3) inset, -.1em -.1em 0 .2em rgba(255, 255, 255, .1);
-webkit-animation: flare 12000ms infinite alternate linear;
animation: flare 12000ms infinite alternate linear;
}
/* CLOUDY */
/* --------------------- */
.cloud {
position: absolute;
top: .1em;
left: 65%;
width: .37em;
height: .13em;
border-radius: .1em;
background-color: #fff;
box-shadow: 0 0 .1em .02em var(--ring) inset, 0 0 .3em -.03em var(--shadow);
-webkit-animation: move 3000ms infinite ease-in-out;
animation: move 3000ms infinite ease-in-out;
}
.cloud + .cloud {
top: 25%;
left: 40%;
-webkit-animation: move 3700ms infinite linear;
animation: move 3700ms infinite linear;
}
.cloud::before,
.cloud::after {
content: '';
position: inherit;
border-radius: inherit;
background-color: inherit;
box-shadow: inherit;
bottom: 30%;
}
.cloud::before {
left: .05em;
width: .2em;
height: .2em;
}
.cloud::after {
left: .15em;
width: .15em;
height: .15em;
}
/* SNOWY */
/* --------------------- */
[icon='snowy'] ul {
position: absolute;
list-style: none;
top: 0%;
left: 10%;
right: 0%;
height: 100%;
margin: 0;
padding: 0;
}
[icon='snowy'] li::before,
[icon='snowy'] li::after {
content: '';
position: absolute;
list-style: none;
width: .015em;
height: .01em;
border-radius: 100%;
background-color: var(--ring);
will-change: transform, opacity;
-webkit-animation: snow 3700ms infinite ease-out;
animation: snow 3700ms infinite ease-out;
opacity: 0;
}
[icon='snowy'] li:nth-child(2n+1)::before,
[icon='snowy'] li:nth-child(13n+11)::after {
top: -7%;
left: 40%;
}
[icon='snowy'] li:nth-child(3n+2)::before,
[icon='snowy'] li:nth-child(11n+7)::after {
top: 5%;
left: 90%;
-webkit-animation-delay: 1000ms;
animation-delay: 1000ms;
}
[icon='snowy'] li:nth-child(5n+3)::before,
[icon='snowy'] li:nth-child(7n+5)::after {
top: -10%;
left: 80%;
-webkit-animation-delay: 2000ms;
animation-delay: 2000ms;
}
[icon='snowy'] li:nth-child(7n+5)::before,
[icon='snowy'] li:nth-child(5n+3)::after {
top: 10%;
left: 10%;
-webkit-animation-delay: 1300ms;
animation-delay: 1300ms;
}
[icon='snowy'] li:nth-child(11n+7)::before,
[icon='snowy'] li:nth-child(3n+2)::af.........完整代码请登录后点击上方下载按钮下载查看
网友评论0