这是一款使用纯 CSS3 制作的非常逼真的卡通大象走路动画特效。该卡通大象的所有元素都是使用 CSS 来生成,大象行走动画使用 CSS animation 来制作,整体效果非常协调。
大象身体的各个部分由各种嵌套 div 元素组成,每一个 div 元素的 class 都代表了这个 div 代表的是大象身体的那个部分。
<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>
大象的行走动画主要在其脚部,大象的每一条腿由两个部分组成:一个是整条腿 div.ele-leg-n,另一部分第它里面的 div.ele-foot,这是大象的脚掌。大象的腿部会执行 leg-animation CSS3 animation 动画,而脚掌部分则会执行 foot-animation CSS3 animation 动画。另外脚部的阴影则是执行 foot-shadow-animation 动画。
@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 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-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;
}
}
其它的 CSS animation 动画还有 eyes-blink,这是大象眨眼的动画;mouth-movement 和 mouth-after-movement 是大象鼻子的动画;tail-movement 是大象尾巴的动画;head-movement 是大象整个头部的动画;body-movement 是大象身体的动画。
演示地址 | 下载地址 |
专业提供WordPress主题安装、深度汉化、加速优化等各类网站建设服务,详询在线客服!
要发表评论,您必须先登录。
请问transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, 10deg) translate3d(0, 30%, 0);这个为什么要将两个translate3d分开写两遍?
感谢您关注本站,年底订单量比较大无法解答您的问题,抱歉了。
transform: translate3d(0, -90%, 0) rotate3d(0, 0, 1, 10deg) translate3d(0, 30%, 0);这样写前面定义的属性不会被覆盖吗?