机器狗随音乐走动动画效果
代码语言:html
所属分类:动画
代码描述:机器狗随音乐走动动画效果,点击播放音乐按钮,机器狗就走起来了
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
body {
align-items: center;
display: flex;
height: 100vh;
justify-content: center;
margin: 0;
background: linear-gradient(
0deg,
rgba(158, 217, 198, 1) 0%,
rgba(158, 217, 198, 1) 40%,
rgba(199, 255, 221, 1) 40%,
rgba(199, 255, 221, 1) 100%
);
}
body[onload] > *,
body[onload] > * *,
body.play-animation > *,
body.play-animation > * * {
animation-play-state: running;
}
body[onload] audio {
display: none;
}
.container {
position: relative;
font-size: clamp(8px, 2vmin, 17px);
}
.arm-wrapper,
.arm-2,
.spot-body,
.details,
.top-leg-1,
.bottom-leg-1,
.top-leg-2,
.bottom-leg-2,
.top-leg-3,
.bottom-leg-3,
.top-leg-4,
.bottom-leg-4,
.shadow {
animation-duration: 1s;
animation-iteration-count: infinite;
animation-timing-function: linear;
animation-play-state: paused;
}
.arm-wrapper {
animation-name: moveBody;
}
.arm-wrapper > * {
position: absolute;
}
.spot-arm {
background: #262626;
height: 2.3em;
}
.arm-base {
border-radius: 15% 0% 58% 0% / 15% 0% 58% 0%;
left: 14em;
top: -1.4em;
transform: rotate(1deg);
width: 10em;
}
.arm-1 {
border-radius: 0% 58% 0% 58% / 0% 58% 0% 58%;
left: 13.2em;
top: -3.7em;
transform: rotate(11deg);
width: 11em;
}
.arm-2 {
animation-name: moveArm3;
border-radius: 58% 0% 0% 0% / 58% 0% 0% 0%;
left: 13.4em;
top: -6em;
width: 13em;
}
@keyframes moveArm3 {
0%,
100% {
top: -7em;
transform: rotate(-10deg);
}
10%,
25% {
top: -6em;
transform: rotate(1deg);
}
35%,
50% {
top: -7em;
transform: rotate(-10deg);
}
60%,
75% {
top: -6em;
transform: rotate(1deg);
}
85%,
95% {
top: -7em;
transform: rotate(-10deg);
}
}
.circle {
background: grey;
border-radius: 50%;
height: 1.9em;
left: 10em;
position: absolute;
top: 2px;
width: 1.9em;
z-index: 2;
}
.arm-top {
border-radius: 1em;
height: 4em;
left: 12em;
position: absolute;
top: -0.8em;
transform: rotate(-15deg) skew(25deg) translate(-1em, 0.3em);
width: 4em;
}
.spot-body {
background: #ffdb0d;
border-radius: 2em 2em 5em 9em / 3em 2em 11em 14em;
border: 5px solid #262626;
height: 5em;
position: static;
width: 25em;
transform: rotate(1deg);
animation-name: moveBody;
}
.container > *:not(.spot-body) {
position: absolute;
}
.top-legs {
border-radius: 1em 1em 2em 7em / 3em 2em 11em 14em;
border-style: solid;
border-width: 2px;
height: 13em;
width: 2.2em;
}
.bottom-legs {
border-radius: 2em 2em 2em 2em / 2em 2em 10em 10em;
border: 2px solid #262626;
color: white;
height: 11em;
width: 1.2em;
z-index: -2;
}
.top-leg-1 {
animation-name: moveTopLeg1;
background: #ffdb0d;
border-color: #ffdb0d;
left: -2em;
top: 0;
transform-box: fill-box;
transform-origin: center center;
transform: rotate(50deg);
z-index: 2;
}
@keyframes moveTopLeg1 {
0%,
100% {
left: -0.5em;
top: -1em;
transform: rotate(33deg);
}
10%,
25% {
left: -2em;
top: -1em;
transform: rotate(59deg);
}
35%,
50% {
left: -3em;
top: -6em;
transform: rotate(90deg);
}
60%,
75% {
left: -1em;
top: 0.5em;
transform: rotate(40deg);
}
85%,
95% {
left: -0.5em;
top: -1em;
transform: rotate(33deg);
}
}
.bottom-leg-1 {
animation-name: moveBottomLeg1;
background: #262626;
left: -2em;
top: 9em;
transform-box: fill-box;
transform-origin: center center;
transform: rotate(-47deg);
z-index: 1;
}
@keyframes moveBottomLeg1 {
0%,
100% {
left: 0em;
top: 9em;
transform: rotate(-33deg);
}
10%,
25% {
left: -5em;
top: 8em;
transform: rotate(-16deg);
}
35%,
50% {
left: -4em;
top: -1em;
transform: rotate(-50deg);
}
60%,
75% {
left: 1em;
top: 9em;
transform: rotate(-62deg);
}
85%,
95% {
left: 0em;
top: 9em;
transform: rotate(-33deg);
}
}
.top-leg-2 {
animation-name: moveTopLeg2;
background: #262626;
left: -1em;
top: 1em;
transform: rotate(51deg);
z-index: -1;
}
@keyframes moveTopLeg2 {
0%,
100% {
left: -2em;
top: -1em;
transform: rotate(51deg);
}
10%,
25% {
left: 1em;
top: 2.2em;
transform: rotate(36deg);
}
35%,
50% {
left: -1em;
top: -1em;
transform: rotate(44deg);
}
60%,
75% {
left: -1em;
top: -2.8em;
transform: rotate(80deg);
}
85%,
95% {
left: -2em;
top: -1em;
transform: rotate(51deg);
}
}
.bottom-leg-2 {
animation-name: moveBottomLeg2;
background: #262626;
left: -1em;
top: 8em;
transform: rotate(-46deg);
}
@keyframes moveBottomLeg2 {
0%,
100% {
left: 0em;
top: 4.5em;
transform: rotate(-69deg);
}
10%,
25% {
left: 2.5em;
top: 9em;
transform: rotate(-50deg);
}
35%,
50% {
left: -1.2em;
top: 6.5em;
transform: rotate(-32deg);
}
60%,
75% {
left: -4.5em;
top: 3.5em;
transform: rotate(-5deg);
}
85%,
95% {
left: -0.5em;
top: 4.2em;
transform: rotate(-69deg);
}
}
.top-leg-3 {
animation-name: moveTopLeg3;
background: #262626;
left: 16em;
top: 1.5em;
transform: rotate(35deg);
z-index: -1;
}
@keyframes moveTopLeg3 {
0%,
100% {
left: 17em;
top: 1em;
transform: rotate(23deg);
}
10%,
25% {
left: 16em;
top: 2em;
transform: rotate(55deg);
}
35%,
50% {
left: 17em;
top: -2.9em;
transform: rotate(50deg);
}
60%,
75% {
left: 19em;
top: 2em;
transform: rotate(14deg);
}
85%,
95% {
left: 17em;
top: 1em;
transform: rotate(23deg);
}
}
.bottom-leg-3 {
animation-name: moveBottomLeg3;
background: #262626;
left: 18.5em;
top: 9em;
transform: rotate(-66deg);
}
@keyframes moveBottomLeg3 {
0%,
100% {
left: 19.5em;
top: 9.5em;
transform: rotate(-45deg);
}
10%,
25% {
left: 16.5em;
top: 8em;
transform: rotate(-52deg);
}
35%,
50% {
left: 19em;
top: 1.5em;
transform: rotate(-82deg);
}
60%,
75% {
left: 23.5em;
top: 9em;
transform: rotate(-60deg);
}
85%,
95% {
left: 19.5em;
top: 9.5em;
transform: rotate(-45deg);
}
}
.top-leg-4 {
animation-name: moveTopLeg4;
background: #ffdb0d;
border-color: #ffdb0d;
left: 17em;
top: 1em;
transform: rotate(38deg);
z-index: 2;
}
@keyframes moveTopLeg4 {
0%,
100% {
left: 18.5em;
top: 0em;
transform: rotate(23deg);
}
10%,
25% {
left: 20.5em;
top: 2em;
transform: rotate(4deg);
}
35%,
50% {
left: 18.5em;
top: -0.5em;
transform: rotate(24deg);
}
60%,
75% {
left: 16em;
top: -0.5em;
transform: rotate(55deg);
}
85%,
95% {
left: 18.5em;
top: 0em;
transform: rotate(23deg);
}
}
.bottom-leg-4 {
animation-name: moveBottomLeg4;
background: #262626;
left: 19em;
top: 9.5em;
transform: rotate(-60deg);
z-index: 1;
}
@keyframes moveBottomLeg4 {
0%,
100% {
left: 22em;
top: 6em;
transform: rotate(-90deg);
}
10%,
25% {
left: 24.5em;
top: 11em;
transform: rotate(-54deg);
}
35%,
50% {
left: 20em;
top: 9em;
transform: rotate(-36deg);
}
60%,
75% {
left: 16em;
top: 6em;
transform: rotate(-54deg);
}
85%,
95% {
left: 22em;
top: 6em;
transform: rotate(-90deg);
}
}
.foot {
background: #262626;
border-radius: 50%;
height: 1.6em;
left: -0.3em;
position: absolute;
top: 9.6em;
transform: rotate(50deg);
width: 1.9em;
}
.back-legs {
height: 11em;
}
.details {
animation-name: moveBody;
background: #262626;
border-radius: 5px;
height: 4em;
width: 4em;
}
.detail-1 {
left: 2em;
top: 0.5em;
}
.detail-2 {
left: 20em;
top: 0.9em;
}
@keyframes moveBody {
0%,
100% {
transform: rotate(1deg) translateY(-2em);
}
10%,
25% {
transform: rotate(1deg) translateY(0);
}
35%,
50% {
transform: rotate(1deg) translateY(-2em);
}
60%,
75% {
transform: rotate(1deg) translateY(0);
}
85%,
95% {
transform: rotate(1deg) translateY(-2em);
}
}
.hinge {
background: #262626;
height: 0.8em;
left: 1em;
position: absolute;
top: 11.8em;
width: 0.8em;
border-radius: 50%;
}
.shadow {
height: 1em;
width: 24em;
border-radius: 50%;
background: #7fad9f;
z-index: -5;
animation-name: moveShadow;
top: 18em;
}
@keyframes moveShadow {
0%,
100% {
transform: scalex(0.68);
}
10%,
25% {
transform: scalex(1);
}
35%,
50% {
transform: scalex(0.68);
}
60%,
75% {
transform: scalex(1);
}
85%,
95% {
transform: scalex(0.68);
}
}
.box-group {
animation: parallax 20s linear infinite;
font-size: clamp(10px, 2vmin, 17px);
left: 0%;
position: fixed;
z-index: -2;
top: 53%;
}
.box-1,
.box-2,
.box-3 {
background: #c4aa89;
border-radius: 5px;
border: 3px solid #6e5747;
z-index: -2;
position: absolute;
}
.box-1 {
height: 10em;
width: 10em;
}
.box-2 {
height: 2em;
width: 8em;
top: 8em;
left: -5em;
}
.box-3 {
height: 7em;
width: 10em;
left: -11em;
}
@keyframes parallax {
from {
left: 0%;
}
to {
left: 120%;
}
}
audio {
bottom: 1rem;
position: fixed;
left: 1rem;
}
audio:focus {
outline: none;
}
</style>
</head>
<body translate="no">
<div class="container">
<div class="arm-wrapper">
<div class="spot-arm arm-base"></div>
<div class="spot-arm arm-1"></div>
<div class="spot-arm arm-2">
<div class="circle"></div>
<div class="spot-arm arm-top"></div>
</div>
</div>
<div class="spot-body"></div>
<div class="details detail-1"></div>
<div class="details detail-2"></div>
<div class="top-legs top-leg-1">
<div class="hinge"></div>
</div>
<div class="bottom-legs bottom-leg-1">
<div class="foot"></div>
</div>
<div class="back-legs top-legs top-leg-2"></div>
<div class="back-legs bottom-legs bottom-leg-2">
<div class="foot"></div>
</div>
<div class="back-legs top-legs top-leg-3"></div>
<div class="back-legs bottom-legs bottom-leg-3">
<div class="foot"></div>
</div>
<div class="top-legs top-leg-4">
<div class="hinge"></div>
</div>
<div class="bottom-legs bottom-leg-4">
<div class="foot"></div>
</div>
<div class="shadow"></div>
</div>
<audio loop onplay="document.body.classList.add('play-animation')" onpause="document.body.classList.remove('play-animation')" src="data:audio/ogg;base64,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.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0