css小狗摆动尾巴陪你玩球动画效果代码
代码语言:html
所属分类:动画
代码描述:css小狗摆动尾巴陪你玩球动画效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <style> :root { --value: 1; } input { margin: 1rem 0; } .ball { width: 32px; height: 32px; border-radius: 50%; margin-top: 4rem; z-index: 0; } .ball:after { content: ""; position: absolute; display: block; top: 0; left: 0; height: 100%; width: 100%; border-radius: 50%; box-shadow: inset 0 -8px 0 0 rgba(0, 0, 0, 0.2); background: var(--ball, red); z-index: 1; } .ball:focus { outline: none; } .ball:focus:after { -webkit-animation: bounce calc(var(--value) * 400ms) infinite alternate; animation: bounce calc(var(--value) * 400ms) infinite alternate; } @-webkit-keyframes bounce { from { transform: scale(2); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { transform: scale(0.8); -webkit-animation-timing-function: cubic-bezier(0, 0, 0, 1); animation-timing-function: cubic-bezier(0, 0, 0, 1); } } @keyframes bounce { from { transform: scale(2); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { transform: scale(0.8); -webkit-animation-timing-function: cubic-bezier(0, 0, 0, 1); animation-timing-function: cubic-bezier(0, 0, 0, 1); } } @-webkit-keyframes bounce-shadow { from { transform: scale(2.5, 2.6) translateY(-50%); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { transform: scale(0.5) translateY(0); -webkit-animation-timing-function: cubic-bezier(0, 0, 0, 1); animation-timing-function: cubic-bezier(0, 0, 0, 1); } } @keyframes bounce-shadow { from { transform: scale(2.5, 2.6) translateY(-50%); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { transform: scale(0.5) translateY(0); -webkit-animation-timing-function: cubic-bezier(0, 0, 0, 1); animation-timing-function: cubic-bezier(0, 0, 0, 1); } } .ball:focus:before { content: ""; position: absolute; display: block; top: 0; left: 0; width: 100%; height: 100%; border-radius: 50%; background: rgba(0, 0, 0, 0.05); -webkit-animation: bounce-shadow calc(var(--value) * 400ms) infinite alternate; animation: bounce-shadow calc(var(--value) * 400ms) infinite alternate; z-index: -10; } .dog { width: 100px; height: 100px; z-index: 1; } .dog:before { content: ""; display: block; position: absolute; width: 100%; height: 100%; border-radius: 50%; background: rgba(0, 0, 0, 0.03); transform: translateY(-30%) scale(1.5); } .dog * { position: absolute; } .dog-body { top: -50%; -webkit-animation: dog-body calc(var(--value) * 200ms) ease-in-out infinite alternate; animation: dog-body calc(var(--value) * 200ms) ease-in-out infinite alternate; } .dog-body:before { content: ""; position: absolute; bottom: 90%; right: 50%; width: 90%; height: 90%; border-top-left-radius: 100%; border-bottom-left-radius: 10%; border-top-right-radius: 10%; background: rgba(255, 255, 255, 0.4); transform-origin: right bottom; -webkit-animation: dog-tail-blur calc(var(--value) * 200ms) calc(var(--value) * 33.333ms) ease-in-out infinite alternate both; animation: dog-tail-blur calc(var(--value) * 200ms) calc(var(--value) * 33.333ms) ease-in-out infinite alternate both; } @-webkit-keyframes dog-tail-blur { from { transform: rotate(0); opacity: 0; } 50% { opacity: 1; } to { transform: rotate(90deg); opacity: 0; } } @keyframes dog-tail-blur { from { transform: rotate(0); opacity: 0; } 50% { opacity: 1; } to { transform: rotate(90deg); opacity: 0; } } @-webkit-keyframes dog-body { from { transform: translateX(-10%); } to { transform: translateX(10%); } } @keyframes dog-body { from { transform: translateX(-10%); } to { transform: translateX(10%); } } .dog-head { -webkit-animation: dog-head calc(var(--value) * 1800ms) cubic-bezier(0.11, 0.79, 0, 0.99) infinite; animation: dog-head calc(var(--value) * 1800ms) cubic-bezier(0.11, 0.79, 0, 0.99) infinite; } @-webkit-keyframes dog-head { from, to { transform: rotate(45deg); } 33.3% { transform: rotate(-45deg); } 66.6% { transform: rotate(0); } } @keyframes dog-head { from, to { transform: rotate(45deg); } 33.3% { transform: rotate(-45deg); } 66.6% { transform: rotate(0); } } .dog-torso { top: -20%; animation: dog-torso calc(var(--value) * 200ms) ease-in-out infinite alternate-reverse; } @-webkit-keyframes dog-torso { from { transform: translateX(-5%); } to { transform: translateX(5%); } } @keyframes dog-torso { from { transform: translateX(-5%); } to { transform: translateX(5%); } } .dog-eyes { width: 60%; top: 55%; left: 20%; z-index: 1; } .dog-eyes:before { content: ""; display: block; height: 40px; width: 40px; border-radius: 40px; position: absolute; background: orange; top: -10px; left: -10px; z-index: 0; border: 4px solid white; border-left-width: 0; border-bottom-width: 0; border-top-width: 0; transform: rotate(-45deg); } .dog-eye { width: 10px; height: 10px; border-radius: 50%; background: #000; z-index: 1; -webkit-animation: dog-eye calc(var(--value) * 1800ms) infinite; animation: dog-eye calc(var(--value) * 1800ms) infinite; } @-webkit-keyframes dog-eye { from, to { -webkit-animation-timing-function: step-end; animation-timing-function: step-end; opacity: 1; } 50%, 55% { -webkit-animation-timing-function: step-start; animation-timing-function: step-start; opacity: 0; } } @keyframes dog-eye { from, to { -webkit-animation-timing-function: step-end; animation-timing-function: step-end; opacity: 1; } 50%, 55% { -webkit-animation-timing-function: step-start; animation-timing-function: step-start; opacity: 0; } } .dog-eye:first-child { left: 0; } .dog-eye:last-child { right: 0; } .dog-muzzle { width: 60%; left: 20%; height: 50%; border-bottom-left-radius: 100%; border-bottom-right-radius: 100%; background: white; bottom: -15%; } .dog-muzzle:before, .dog-muzzle:after { content: ""; display: block; position: absolute; } .dog-muzzle:before { width: 6px; height: 20px; bottom: 0; left: calc(50% - 3px); background: #EAEBEC; } .dog-muzzle:after { background: black; width: 20px; height: 15px; bottom: 12px; left: ca.........完整代码请登录后点击上方下载按钮下载查看
网友评论0