div+css实现下雪中雪地上的圣诞老人眨眼动画效果代码
代码语言:html
所属分类:动画
代码描述:div+css实现下雪中雪地上的圣诞老人眨眼动画效果代码
代码标签: div css实现 下雪 雪地 圣诞 老人 眨眼 动画
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> @keyframes snow { 0% { background-position: 0 0, 0 0, 0 0, 0 0; } 40% { background-position: 10px 14vmin, -20px 28vmin, 20px 20vmin, 10px 24vmin; } 60% { background-position: -10px 21vmin, -30px 42vmin, 30px 30vmin, 15px 36vmin; } 100% { background-position: 0 35vmin, 0 70vmin, 0 50vmin, 0 60vmin; } } @keyframes blink { 0%, 6%, 100% { height: 12%; } 3% { height: 0%; } } @keyframes moveMustache { 0%, 40%, 44%, 100% { transform: translate(-100%, 0) rotate(25deg); } 42% { transform: translate(-100%, 0) rotate(30deg); } } @keyframes moveMustache2 { 0%, 40%, 44%, 100% { transform: rotate(-25deg); } 42% { transform: rotate(-30deg); } } @media (prefers-reduced-motion) { * { animation: none !important; } } html { background: #abc; overflow: hidden; background-image: radial-gradient(circle at 50% 50%, white 2.5%, transparent 0), radial-gradient(circle at 30% 90%, white 1.5%, transparent 0), radial-gradient(circle at 70% 10%, white 1%, transparent 0), radial-gradient(circle at 10% 40%, white 1%, transparent 0); background-size: 45vmin 35vmin, 50vmin 70vmin, 60vmin 50vmin, 65vmin 60vmin; background-position: 0 0; animation: snow infinite 7s linear; } .canvas { --skin: #fca; --eyes: #630a; --cheeks: #f001; --beard: #eee; --mustache: #fff; --suit: #a00; --belt: #222; --belt-buckle: gold; width: 60vmin; aspect-ratio: 1; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .canvas::before { content: ""; display: block; position: absolute; top: 90%; left: 50%; width: 200vmax; height: 200vmax; background: white; transform: translate(-50%, 0) rotate(1deg); border-radius: 100% / 20%; } .head { --positionX: 27%; --positionY: 63%; position: absolute; top: 10%; left: 50%; border-radius: 50%; width: 25%; height: 25%; transform: translate(-50%, 0); background: var(--skin); } .eye { position: absolute; top: var(--positionY); left: var(--positionX); width: 12%; height: 12%; background: var(--eyes); border-radius: 50%; animation: blink 5s infinite linear; } .eye + .eye { left: auto; right: var(--positionX); } .cheek { position: absolute; top: calc(var(--positionY) + 7%); left: calc(var(--positionX) - 12%); width: 20%; height: 12%; background: var(--cheeks); border-radius: 50%; } .cheek + .cheek { left: auto; right: calc(var(--positionX) - 12%); } .beard { position: absolute; top: 10%; left: 50%; width: 30%; height: 40%; background: var(--beard); transform: translate(-50%, 0); border-radius: 100% / 120% 120% 80% 80%; } .mustache { position: absolute; top: 88%; left: 52%; width: 40%; height: 40%; background: var(--mustache); border-radius: 100% 10% 100% 0; transform-origin: top right; transform: translate(-100%, 0) rotate(25deg); animation: moveMustache 7s infinite linear; } .mustache + .mustache { left: 48%; border-radius: 10% 100% 0 100%; transform-origin: top left; transform: rotate(-25deg); animation: moveMustache2 7s infinite linear; } .hat { position: absolute; width: 98%; height: 80%; background: var(--suit); border-radius: 100% 20% 0 0; top: -40%; left: 50%; transform: translate(-50%, 0) rotate(1deg); } .hat::before { content: ""; display: block; posi.........完整代码请登录后点击上方下载按钮下载查看
网友评论0