以下是 CSS3实现3D人物走路动画特效代码 的示例演示效果:
部分效果截图:
HTML代码(index.html):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSS3实现3D人物走路动画特效</title>
</head>
<body>
<link rel="stylesheet" href="css/webkit_keyframes.css" type="text/css">
<link rel="stylesheet" href="css/moz_keyframes.css" type="text/css">
<link rel="stylesheet" href="css/common.css" type="text/css">
<div id="canvas">
<div class="sky">
<div class="cloud-1"></div>
<div class="cloud-2"></div>
<div class="cloud-3"></div>
<div class="cloud-4"></div>
<div class="cloud-5"></div>
<div class="cloud-6"></div>
<div class="cloud-7"></div>
<div class="cloud-8"></div>
</div>
<div class="horizon"></div>
<div class="ground">
<div class="sign-best"></div>
<div class="sign-no-js"></div>
<div class="sign-lots-of-divs"></div>
<div class="sign-all-css"></div>
</div>
<!-- skeleton and shadow -->
<div class="shadow"></div>
<div class="me">
<div class="torso">
<div class="left leg">
<div class="left thigh">
<div class="left shin">
<div class="left foot">
<div class="left toes"></div>
</div>
</div>
</div>
</div>
<!-- left leg -->
<div class="right leg">
<div class="right thigh">
<div class="right shin">
<div class="right foot">
<div class="right toes"></div>
</div>
</div>
</div>
</div>
<!-- right leg -->
<div class="left arm">
<div class="left bicep">
<div class="left forearm"></div>
</div>
</div>
<!-- left arm -->
<div class="right arm">
<div class="right bicep">
<div class="right forearm"></div>
</div>
</div>
<!-- right arm -->
</div>
<!-- torso -->
</div>
<!-- me -->
<div class="overlay"></div>
</div>
</body>
</html>
CSS代码(moz_keyframes.css):
@-moz-keyframes me{0%{-moz-transform:rotate(5deg) translate( 5px,0px);}
25%{-moz-transform:rotate(5deg) translate(-5px,-14px);}
50%{-moz-transform:rotate(5deg) translate( 5px,0px);}
75%{-moz-transform:rotate(5deg) translate(-5px,-14px);}
100%{-moz-transform:rotate(5deg) translate( 5px,0px);}
}
@-moz-keyframes right-bicep{0%{-moz-transform:rotate(26deg);}
50%{-moz-transform:rotate(-20deg);}
100%{-moz-transform:rotate(26deg);}
}
@-moz-keyframes left-bicep{0%{-moz-transform:rotate(-20deg);}
50%{-moz-transform:rotate(26deg);}
100%{-moz-transform:rotate(-20deg);}
}
@-moz-keyframes right-forearm{0%{-moz-transform:rotate(-10deg);}
50%{-moz-transform:rotate(-45deg);}
100%{-moz-transform:rotate(-10deg);}
}
@-moz-keyframes left-forearm{0%{-moz-transform:rotate(-45deg);}
50%{-moz-transform:rotate(-10deg);}
100%{-moz-transform:rotate(-45deg);}
}
@-moz-keyframes right-thigh{0%{-moz-transform:rotate(-45deg);}
50%{-moz-transform:rotate(10deg);}
100%{-moz-transform:rotate(-45deg);}
}
@-moz-keyframes left-thigh{0%{-moz-transform:rotate(10deg);}
50%{-moz-transform:rotate(-45deg);}
100%{-moz-transform:rotate(10deg);}
}
@-moz-keyframes right-shin{0%{-moz-transform:rotate(30deg);}
25%{-moz-transform:rotate(20deg);}
50%{-moz-transform:rotate(20deg);}
75%{-moz-transform:rotate(85deg);}
100%{-moz-transform:rotate(30deg);}
}
@-moz-keyframes left-shin{0%{-moz-transform:rotate(20deg);}
25%{-moz-transform:rotate(85deg);}
50%{-moz-transform:rotate(30deg);}
75%{-moz-transform:rotate(20deg);}
100%{-moz-transform:rotate(20deg);}
}
@-moz-keyframes right-foot{0%{-moz-transform:rotate(-5deg);}
25%{-moz-transform:rotate(-7deg);}
50%{-moz-transform:rotate(-16deg);}
75%{-moz-transform:rotate(-10deg);}
100%{-moz-transform:rotate(-5deg);}
}
@-moz-keyframes left-foot{0%{-moz-transform:rotate(-16deg);}
25%{-moz-transform:rotate(-10deg);}
50%{-moz-transform:rotate(-5deg);}
75%{-moz-transform:rotate(-7deg);}
100%{-moz-transform:rotate(-16deg);}
}
@-moz-keyframes right-toes{0%{-moz-transform:rotate(0deg);}
25%{-moz-transform:rotate(-10deg);}
50%{-moz-transform:rotate(-10deg);}
75%{-moz-transform:rotate(-25deg);}
100%{-moz-transform:rotate(0deg);}
}
@-moz-keyframes left-toes{0%{-moz-transform:rotate(-10deg);}
25%{-moz-transform:rotate(-25deg);}
50%{-moz-transform:rotate(0deg);}
75%{-moz-transform:rotate(-10deg);}
100%{-moz-transform:rotate(-10deg);}
}
@-moz-keyframes shadow{0%{opacity:1;}
25%{opacity:0.75;}
50%{opacity:1;}
75%{opacity:0.75;}
100%{opacity:1;}
}
@-moz-keyframes prop-600{0%{-moz-transform:translateX(0px);}
100%{-moz-transform:translateX(-600px);}
}
@-moz-keyframes prop-1200{0%{-moz-transform:translateX(0px);}
100%{-moz-transform:translateX(-1200px);}
}
@-moz-keyframes prop-2000{0%{-moz-transform:translateX(0px);}
100%{-moz-transform:translateX(-2000px);}
}
CSS代码(webkit_keyframes.css):
@-webkit-keyframes me{0%{-webkit-transform:rotate(5deg) translate( 5px,0px);}
25%{-webkit-transform:rotate(5deg) translate(-5px,-14px);}
50%{-webkit-transform:rotate(5deg) translate( 5px,0px);}
75%{-webkit-transform:rotate(5deg) translate(-5px,-14px);}
100%{-webkit-transform:rotate(5deg) translate( 5px,0px);}
}
@-webkit-keyframes right-bicep{0%{-webkit-transform:rotate(26deg);}
50%{-webkit-transform:rotate(-20deg);}
100%{-webkit-transform:rotate(26deg);}
}
@-webkit-keyframes left-bicep{0%{-webkit-transform:rotate(-20deg);}
50%{-webkit-transform:rotate(26deg);}
100%{-webkit-transform:rotate(-20deg);}
}
@-webkit-keyframes right-forearm{0%{-webkit-transform:rotate(-10deg);}
50%{-webkit-transform:rotate(-45deg);}
100%{-webkit-transform:rotate(-10deg);}
}
@-webkit-keyframes left-forearm{0%{-webkit-transform:rotate(-45deg);}
50%{-webkit-transform:rotate(-10deg);}
100%{-webkit-transform:rotate(-45deg);}
}
@-webkit-keyframes right-thigh{0%{-webkit-transform:rotate(-45deg);}
50%{-webkit-transform:rotate(10deg);}
100%{-webkit-transform:rotate(-45deg);}
}
@-webkit-keyframes left-thigh{0%{-webkit-transform:rotate(10deg);}
50%{-webkit-transform:rotate(-45deg);}
100%{-webkit-transform:rotate(10deg);}
}
@-webkit-keyframes right-shin{0%{-webkit-transform:rotate(30deg);}
25%{-webkit-transform:rotate(20deg);}
50%{-webkit-transform:rotate(20deg);}
75%{-webkit-transform:rotate(85deg);}
100%{-webkit-transform:rotate(30deg);}
}
@-webkit-keyframes left-shin{0%{-webkit-transform:rotate(20deg);}
25%{-webkit-transform:rotate(85deg);}
50%{-webkit-transform:rotate(30deg);}
75%{-webkit-transform:rotate(20deg);}
100%{-webkit-transform:rotate(20deg);}
}
@-webkit-keyframes right-foot{0%{-webkit-transform:rotate(-5deg);}
25%{-webkit-transform:rotate(-7deg);}
50%{-webkit-transform:rotate(-16deg);}
75%{-webkit-transform:rotate(-10deg);}
100%{-webkit-transform:rotate(-5deg);}
}
@-webkit-keyframes left-foot{0%{-webkit-transform:rotate(-16deg);}
25%{-webkit-transform:rotate(-10deg);}
50%{-webkit-transform:rotate(-5deg);}
75%{-webkit-transform:rotate(-7deg);}
100%{-webkit-transform:rotate(-16deg);}
}
@-webkit-keyframes right-toes{0%{-webkit-transform:rotate(0deg);}
25%{-webkit-transform:rotate(-10deg);}
50%{-webkit-transform:rotate(-10deg);}
75%{-webkit-transform:rotate(-25deg);}
100%{-webkit-transform:rotate(0deg);}
}
@-webkit-keyframes left-toes{0%{-webkit-transform:rotate(-10deg);}
25%{-webkit-transform:rotate(-25deg);}
50%{-webkit-transform:rotate(0deg);}
75%{-webkit-transform:rotate(-10deg);}
100%{-webkit-transform:rotate(-10deg);}
}
@-webkit-keyframes shadow{0%{opacity:1;}
25%{opacity:0.75;}
50%{opacity:1;}
75%{opacity:0.75;}
100%{opacity:1;}
}
@-webkit-keyframes prop-600{0%{-webkit-transform:translateX(0px);}
100%{-webkit-transform:translateX(-600px);}
}
@-webkit-keyframes prop-1200{0%{-webkit-transform:translateX(0px);}
100%{-webkit-transform:translateX(-1200px);}
}
@-webkit-keyframes prop-2000{0%{-webkit-transform:translateX(0px);}
100%{-webkit-transform:translateX(-2000px);}
}