机器狗随音乐走动动画效果
代码语言: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