先把代码送给大家,使用方式在上一篇博客中有详细说明:
Canvas波浪花环
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>纯CSS3大象走路动画title>
<link rel="stylesheet" type="text/css" href="css/styles.css">
<style>
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font: inherit;
font-size: 100%;
vertical-align: baseline;
}
html {
line-height: 1;
}
ol, ul {
list-style: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
caption, th, td {
text-align: left;
font-weight: normal;
vertical-align: middle;
}
q, blockquote {
quotes: none;
}
q:before, q:after, blockquote:before, blockquote:after {
content: "";
content: none;
}
a img {
border: none;
}
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
display: block;
}
/***********VARIABLES***********/
/*Movement*/
/*Colors*/
/***********STYLES***********/
body {
background-color: #d4e7ba;
}
/*.ele-container {
background: -webkit-linear-gradient(top, rgba(0, 141, 210, 0.63) 0%, transparent 100%);
background: linear-gradient(to bottom, rgba(0, 141, 210, 0.63) 0%, transparent 100%);
height: 500px;
overflow: hidden;
position: relative;
width: 100%;
}*/
.ele-wrapper {
-webkit-animation: ele-movement 1s infinite linear;
animation: ele-movement 1s infinite linear;
left: 50%;
position: absolute;
top: 50%;
-webkit-transform: translate3D(-50%, -75%, 0);
-ms-transform: translate3D(-50%, -75%, 0);
transform: translate3D(-50%, -75%, 0);
width: 200px;
}
.ele-body {
-webkit-animation: body-movement 1s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93);
animation: body-movement 1s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93);
background: -webkit-linear-gradient(top, #cfcfcf 0%, #9c9c9c 70%);
background: linear-gradient(to bottom, #cfcfcf 0%, #9c9c9c 70%);
border: 1px solid #808080;
border-radius: 100px 50px 70px 60px;
height: 165px;
position: relative;
width: 100%;
z-index: 1;
}
.ele-tail {
-webkit-animation: tail-movement 1s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93);
animation: tail-movement 1s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93);
border-top: 7px solid #808080;
border-radius: 50%;
height: 50px;
position: absolute;
-webkit-transform: translate3d(-3%, 69%, 0) rotateZ(-20deg);
transform: translate3d(-3%, 69%, 0) rotateZ(-20deg);
width: 64px;
}
.ele-tail:before {
border-top: 5px solid #C2C2C2;
border-radius: 50%;
content: '';
height: 50px;
position: absolute;
width: 64px;
top: -6px;
}
.ele-head {
-webkit-animation: head-movement 2s infinite linear;
animation: head-movement 2s infinite linear;
background: #C2C2C2;
border-radius: 50%;
border-top: 1px solid #808080;
box-shadow: -1px 1px 2px #808080;
height: 150px;
position: absolute;
-webkit-transform: translate3d(80%, -25%, 0);
transform: translate3d(80%, -25%, 0);
width: 155px;
}
.ele-eyes:before, .ele-eyes:after {
-webkit-animation: eyes-blink 3.5s infinite linear;
animation: eyes-blink 3.5s infinite linear;
background-color: #FDFDFD;
border-radius: 50%;
bottom: -48px;
content: '';
height: 10px;
position: absolute;
width: 10px;
}
.ele-eyebrows {
-webkit-animation: eyebrows-movement 1s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93);
animation: eyebrows-movement 1s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93);
background: -webkit-linear-gradient(bottom, #C2C2C2 20%, #9c9c9c 100%);
background: linear-gradient(to top, #C2C2C2 20%, #9c9c9c 100%);
border-radius: 10px;
border-top: 1px solid #808080;
bottom: 88px;
height: 20px;
left: 92px;
position: absolute;
width: 60px;
}
.ele-eyes {
left: 60%;
position: absolute;
top: 6%;
}
.ele-eyes:before {
left: 41px;
}
.ele-eyes:after {
left: 10px;
}
.ele-ear {
-webkit-animation: ear-movement 1s infinite linear;
animation: ear-movement 1s infinite linear;
background: -webkit-linear-gradient(right, #C2C2C2 10%, darkgray 100%);
background: linear-gradient(to left, #C2C2C2 10%, darkgray 100%);
border-bottom: 1px solid #808080;
border-left: 1px solid #808080;
border-top: 1px solid #808080;
border-radius: 60px 0 0 50%;
height: 110px;
left: -22px;
position: absolute;
top: 25px;
-webkit-transform: rotateZ(-10deg);
transform: rotateZ(-10deg);
width: 60px;
}
.ele-mouth {
-webkit-animation: mouth-movement 1s infinite linear;
animation: mouth-movement 1s infinite linear;
background: -webkit-linear-gradient(top, #C2C2C2 50%, darkgray 100%);
background: linear-gradient(to bottom, #C2C2C2 50%, darkgray 100%);
border-radius: 0px 100% 0px 0px;
border-top: 2px solid #808080;
height: 160px;
left: 83%;
position: absolute;
top: 35%;
width: 30px;
}
.ele-mouth:before {
-webkit-animation: mouth-after-movement 1s infinite linear;
animation: mouth-after-movement 1s infinite linear;
background-color: darkgray;
border-bottom: 1px solid #808080;
border-left: 1px solid #808080;
border-radius: 8px;
bottom: 0;
content: '';
height: 15px;
left: -5px;
position: absolute;
width: 40px;
}
.ele-fang-front, .ele-fang-back {
border-bottom: 12px solid #FFF;
border-radius: 50%;
height: 40px;
position: absolute;
-webkit-transform: rotateZ(20deg);
transform: rotateZ(20deg);
width: 50px;
}
.ele-fang-front {
box-shadow: 0px 1px 0px #808080;
left: 100px;
top: 100px;
}
.ele-fang-front:before {
background-color: #C2C2C2;
bottom: -10px;
content: '';
height: 45px;
left: -5px;
position: absolute;
width: 15px;
}
.ele-fang-front:after {
background-color: #C2C2C2;
border-radius: 0 50% 50% 0;
bottom: -14px;
box-shadow: 1px 1px 0px #808080;
content: '';
height: 21px;
left: 6px;
position: absolute;
-webkit-transform: rotateZ(20deg);
transform: rotateZ(20deg);
width: 15px;
}
.ele-fang-back {
border-bottom-color: #e6e6e6;
left: 115px;
top: 95px;
z-index: -1;
}
.ele-fang-back:before {
background-color: #C2C2C2;
bottom: -10px;
content: '';
height: 25px;
position: absolute;
width: 30px;
}
div[class^="ele-leg-"] {
border-left: 1px solid #808080;
height: 88px;
position: absolute;
width: 50px;
}
div[class^="ele-leg-"]:before {
background-color: rgba(74, 74, 74, 0.53);
border-radius: 50%;
bottom: -30px;
box-shadow: 0 0 2px rgba(74, 74, 74, 0.53);
content: '';
height: 10px;
left: 50%;
position: absolute;
-webkit-transform: translateX(-50%) rotateZ(0deg);
transform: translateX(-50%) rotateZ(0deg);
width: 50px;
}
.ele-leg-front {
background-color: #9c9c9c;
top: 100%;
z-index: 1;
}
.ele-leg-front .ele-foot {
background-color: #9c9c9c;
}
.ele-leg-back {
background-color: #828282;
top: 95%;
}
.ele-leg-back .ele-foot {
background-color: #828282;
}
.ele-leg-back .ele-foot:before, .ele-leg-back .ele-foot:after {
background-color: #bababa;
}
.ele-leg-1 {
-webkit-animation: leg-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) 0s;
animation: leg-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) 0s;
right: 57.5%;
}
.ele-leg-1:before {
-webkit-animation: foot-shadow-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) 0s;
animation: foot-shadow-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) 0s;
}
.ele-leg-1 .ele-foot {
-webkit-animation: foot-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) 0s;
animation: foot-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) 0s;
}
.ele-leg-2 {
-webkit-animation: leg-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) -1s;
animation: leg-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) -1s;
right: 67.5%;
}
.ele-leg-2:before {
-webkit-animation: foot-shadow-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) -1s;
animation: foot-shadow-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) -1s;
}
.ele-leg-2 .ele-foot {
-webkit-animation: foot-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) -1s;
animation: foot-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) -1s;
}
.ele-leg-3 {
-webkit-animation: leg-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) -1s;
animation: leg-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) -1s;
right: 5%;
}
.ele-leg-3:before {
-webkit-animation: foot-shadow-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) -1s;
animation: foot-shadow-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) -1s;
}
.ele-leg-3 .ele-foot {
-webkit-animation: foot-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) -1s;
animation: foot-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) -1s;
}
.ele-leg-4 {
-webkit-animation: leg-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) 0s;
animation: leg-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) 0s;
right: 15%;
}
.ele-leg-4:before {
-webkit-animation: foot-shadow-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) 0s;
animation: foot-shadow-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) 0s;
}
.ele-leg-4 .ele-foot {
-webkit-animation: foot-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) 0s;
animation: foot-animation 2s infinite cubic-bezier(0.63, 0.15, 0.49, 0.93) 0s;
}
.ele-foot:before, .ele-foot:after {
background-color: #E0E0E0;
border-radius: 10px 10px 0 0;
bottom: 0;
content: '';
height: 15px;
position: absolute;
width: 11px;
}
.ele-foot {
border-radius: 25px 25px 35% 40%;
bottom: -17.5px;
box-shadow: -1px 1px 0px #808080;
height: 35px;
left: 50%;
overflow: hidden;
position: absolute;
-webkit-transform: translateX(-49%) rotateZ(0deg);
transform: translateX(-49%) rotateZ(0deg);
width: 55px;
}
.ele-foot:before {
right: -7.5px;
}
.ele-foot:after {
bottom: -3px;
right: 5px;
}
@-webkit-keyframes leg-animation {
0% {
height: 65px;
-webkit-transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, 10deg) translate3d(0, 30%, 0);
transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, 10deg) translate3d(0, 30%, 0);
}
25% {
height: 40px;
}
50% {
height: 65px;
-webkit-transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, -15deg) translate3d(0, 30%, 0);
transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, -15deg) translate3d(0, 30%, 0);
}
75% {
height: 65px;
}
100% {
height: 65px;
-webkit-transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, 10deg) translate3d(0, 30%, 0);
transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, 10deg) translate3d(0, 30%, 0);
}
}
@keyframes leg-animation {
0% {
height: 65px;
-webkit-transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, 10deg) translate3d(0, 30%, 0);
transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, 10deg) translate3d(0, 30%, 0);
}
25% {
height: 40px;
}
50% {
height: 65px;
-webkit-transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, -15deg) translate3d(0, 30%, 0);
transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, -15deg) translate3d(0, 30%, 0);
}
75% {
height: 65px;
}
100% {
height: 65px;
-webkit-transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, 10deg) translate3d(0, 30%, 0);
transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, 10deg) translate3d(0, 30%, 0);
}
}
@-webkit-keyframes foot-animation {
0% {
-webkit-transform: translateX(-49%) rotateZ(-10deg);
transform: translateX(-49%) rotateZ(-10deg);
}
15% {
-webkit-transform: translateX(-49%) rotateZ(5deg);
transform: translateX(-49%) rotateZ(5deg);
}
40% {
-webkit-transform: translateX(-49%) rotateZ(0deg);
transform: translateX(-49%) rotateZ(0deg);
}
50% {
-webkit-transform: translateX(-49%) rotateZ(15deg);
transform: translateX(-49%) rotateZ(15deg);
}
100% {
-webkit-transform: translateX(-49%) rotateZ(-10deg);
transform: translateX(-49%) rotateZ(-10deg);
}
}
@keyframes foot-animation {
0% {
-webkit-transform: translateX(-49%) rotateZ(-10deg);
transform: translateX(-49%) rotateZ(-10deg);
}
15% {
-webkit-transform: translateX(-49%) rotateZ(5deg);
transform: translateX(-49%) rotateZ(5deg);
}
40% {
-webkit-transform: translateX(-49%) rotateZ(0deg);
transform: translateX(-49%) rotateZ(0deg);
}
50% {
-webkit-transform: translateX(-49%) rotateZ(15deg);
transform: translateX(-49%) rotateZ(15deg);
}
100% {
-webkit-transform: translateX(-49%) rotateZ(-10deg);
transform: translateX(-49%) rotateZ(-10deg);
}
}
@-webkit-keyframes foot-shadow-animation {
0% {
-webkit-transform: translateX(-50%) rotateZ(-8deg);
transform: translateX(-50%) rotateZ(-8deg);
bottom: -20px;
width: 50px;
}
25% {
bottom: -30px;
width: 40px;
}
50% {
-webkit-transform: translateX(-50%) rotateZ(13deg);
transform: translateX(-50%) rotateZ(13deg);
bottom: -20px;
width: 50px;
}
100% {
-webkit-transform: translateX(-50%) rotateZ(-8deg);
transform: translateX(-50%) rotateZ(-8deg);
bottom: -20px;
width: 50px;
}
}
@keyframes foot-shadow-animation {
0% {
-webkit-transform: translateX(-50%) rotateZ(-8deg);
transform: translateX(-50%) rotateZ(-8deg);
bottom: -20px;
width: 50px;
}
25% {
bottom: -30px;
width: 40px;
}
50% {
-webkit-transform: translateX(-50%) rotateZ(13deg);
transform: translateX(-50%) rotateZ(13deg);
bottom: -20px;
width: 50px;
}
100% {
-webkit-transform: translateX(-50%) rotateZ(-8deg);
transform: translateX(-50%) rotateZ(-8deg);
bottom: -20px;
width: 50px;
}
}
@-webkit-keyframes eyes-blink {
0% {
height: 10px;
}
3% {
height: 1px;
}
5% {
height: 10px;
}
100% {
height: 10px;
}
}
@keyframes eyes-blink {
0% {
height: 10px;
}
3% {
height: 1px;
}
5% {
height: 10px;
}
100% {
height: 10px;
}
}
@-webkit-keyframes ele-movement {
0% {
-webkit-transform: translate3D(-50%, -54%, 0);
transform: translate3D(-50%, -54%, 0);
}
50% {
-webkit-transform: translate3D(-50%, -57%, 0);
transform: translate3D(-50%, -57%, 0);
}
100% {
-webkit-transform: translate3D(-50%, -54%, 0);
transform: translate3D(-50%, -54%, 0);
}
}
@keyframes ele-movement {
0% {
-webkit-transform: translate3D(-50%, -54%, 0);
transform: translate3D(-50%, -54%, 0);
}
50% {
-webkit-transform: translate3D(-50%, -57%, 0);
transform: translate3D(-50%, -57%, 0);
}
100% {
-webkit-transform: translate3D(-50%, -54%, 0);
transform: translate3D(-50%, -54%, 0);
}
}
@-webkit-keyframes mouth-movement {
0% {
height: 160px;
width: 28px;
}
50% {
height: 150px;
width: 30px;
}
100% {
height: 160px;
width: 28px;
}
}
@keyframes mouth-movement {
0% {
height: 160px;
width: 28px;
}
50% {
height: 150px;
width: 30px;
}
100% {
height: 160px;
width: 28px;
}
}
@-webkit-keyframes mouth-after-movement {
0% {
width: 37px;
}
50% {
width: 40px;
}
100% {
width: 37px;
}
}
@keyframes mouth-after-movement {
0% {
width: 37px;
}
50% {
width: 40px;
}
100% {
width: 37px;
}
}
@-webkit-keyframes tail-movement {
0% {
-webkit-transform: translate3d(-3%, 69%, 0) rotateZ(-20deg);
transform: translate3d(-3%, 69%, 0) rotateZ(-20deg);
}
50% {
-webkit-transform: translate3d(-5%, 65%, 0) rotateZ(-18deg);
transform: translate3d(-5%, 65%, 0) rotateZ(-18deg);
}
100% {
-webkit-transform: translate3d(-3%, 69%, 0) rotateZ(-20deg);
transform: translate3d(-3%, 69%, 0) rotateZ(-20deg);
}
}
@keyframes tail-movement {
0% {
-webkit-transform: translate3d(-3%, 69%, 0) rotateZ(-20deg);
transform: translate3d(-3%, 69%, 0) rotateZ(-20deg);
}
50% {
-webkit-transform: translate3d(-5%, 65%, 0) rotateZ(-18deg);
transform: translate3d(-5%, 65%, 0) rotateZ(-18deg);
}
100% {
-webkit-transform: translate3d(-3%, 69%, 0) rotateZ(-20deg);
transform: translate3d(-3%, 69%, 0) rotateZ(-20deg);
}
}
@-webkit-keyframes head-movement {
0% {
-webkit-transform: translate3d(80%, -22%, 0) rotateZ(3deg);
transform: translate3d(80%, -22%, 0) rotateZ(3deg);
}
25% {
-webkit-transform: translate3d(80%, -22.5%, 0) rotateZ(0deg);
transform: translate3d(80%, -22.5%, 0) rotateZ(0deg);
}
50% {
-webkit-transform: translate3d(80%, -23%, 0) rotateZ(-3deg);
transform: translate3d(80%, -23%, 0) rotateZ(-3deg);
}
75% {
-webkit-transform: translate3d(80%, -22.5%, 0) rotateZ(0deg);
transform: translate3d(80%, -22.5%, 0) rotateZ(0deg);
}
100% {
-webkit-transform: translate3d(80%, -22%, 0) rotateZ(3deg);
transform: translate3d(80%, -22%, 0) rotateZ(3deg);
}
}
@keyframes head-movement {
0% {
-webkit-transform: translate3d(80%, -22%, 0) rotateZ(3deg);
transform: translate3d(80%, -22%, 0) rotateZ(3deg);
}
25% {
-webkit-transform: translate3d(80%, -22.5%, 0) rotateZ(0deg);
transform: translate3d(80%, -22.5%, 0) rotateZ(0deg);
}
50% {
-webkit-transform: translate3d(80%, -23%, 0) rotateZ(-3deg);
transform: translate3d(80%, -23%, 0) rotateZ(-3deg);
}
75% {
-webkit-transform: translate3d(80%, -22.5%, 0) rotateZ(0deg);
transform: translate3d(80%, -22.5%, 0) rotateZ(0deg);
}
100% {
-webkit-transform: translate3d(80%, -22%, 0) rotateZ(3deg);
transform: translate3d(80%, -22%, 0) rotateZ(3deg);
}
}
@-webkit-keyframes body-movement {
0% {
height: 160px;
margin-top: 5px;
}
50% {
height: 162.5px;
margin-top: 2.5px;
}
100% {
height: 160px;
margin-top: 5px;
}
}
@keyframes body-movement {
0% {
height: 160px;
margin-top: 5px;
}
50% {
height: 162.5px;
margin-top: 2.5px;
}
100% {
height: 160px;
margin-top: 5px;
}
}
@-webkit-keyframes ear-movement {
0% {
height: 115px;
}
50% {
height: 110px;
}
100% {
height: 115px;
}
}
@keyframes ear-movement {
0% {
height: 115px;
}
50% {
height: 110px;
}
100% {
height: 115px;
}
}
@-webkit-keyframes eyebrows-movement {
0% {
height: 18px;
}
50% {
height: 20px;
}
100% {
height: 18px;
}
}
@keyframes eyebrows-movement {
0% {
height: 18px;
}
50% {
height: 20px;
}
100% {
height: 18px;
}
}
style>
head>
<body>
<div class="ele-container">
<div class="ele-wrapper">
<div class="ele-tail">div>
<div class="ele-body">
<div class="ele-head">
<div class="ele-eyebrows">div>
<div class="ele-eyes">div>
<div class="ele-mouth">div>
<div class="ele-fang-front">div>
<div class="ele-fang-back">div>
<div class="ele-ear">div>
div>
div>
<div class="ele-leg-1 ele-leg-back">
<div class="ele-foot">div>
div>
<div class="ele-leg-2 ele-leg-front">
<div class="ele-foot">div>
div>
<div class="ele-leg-3 ele-leg-back">
<div class="ele-foot">div>
div>
<div class="ele-leg-4 ele-leg-front">
<div class="ele-foot">div>
div>
div>
div>
body>
html>
代码块儿右上角复制后,粘贴进html文档使用,操作简单,通俗易学。往后的日子里,我会持续更新此类文章,并加以注释。
如果大家对此类文章稍有兴趣,可以查看本人的其它文章,但愿能为你开启美丽的前端之旅