上次我们画了一个哆啦A梦,可惜这个哆啦A梦并不会动,今天我们就来画一个可以动的Android小人。这次,我们全程使用C3高级。
image.png
好,废话不多说,我们直接上代码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Android</title>
</head>
<body>
<div class="android">
<div class="head">
<div class="l_ant"></div>
<div class="r_ant"></div>
<div class="l_eye"></div>
<div class="r_eye"></div>
</div>
<div class="body">
<div class="l_arm"></div>
<div class="r_arm"></div>
<div class="l_leg"></div>
<div class="r_leg"></div>
</div>
</div>
</body>
</html>
初始化css,由于我们这次只用到了div所以我们只初始化div就可以了
div {
margin: 0;
padding: 0;
}
设置整体的宽高、指定颜色
.android{
height: 404px;
width: 334px;
margin: 100px auto;
}
div div {
background: #A4CA39;
position: relative;
}
头部样式
.head{
width: 220px;
height: 100px;
top: 32px;
border-radius: 110px 110px 0 0;
-moz-border-radius: 110px 110px 0 0;
-webkit-border-radius: 110px 110px 0 0;
}
image.png
眼睛
.l_eye, .r_eye {
background: #fff;
width: 20px; height: 20px;
position: absolute; top: 42px;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
}
.l_eye {left: 50px;}
.r_eye {right: 50px;}
image.png
接下来还有天线。。。
.l_ant, .r_ant{
width: 6px; height: 50px;
position: absolute; top: -34px;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
}
.l_ant {
left: 50px;
transform: rotate(-30deg);
-webkit-transform: rotate(-30deg);
-moz-transform: rotate(-30deg);
}
.r_ant {
right: 50px;
transform: rotate(30deg);
-webkit-transform: rotate(30deg);
-moz-transform: rotate(30deg);
}
image.png
好,现在有点意思了,我们继续画身体
.body{
width: 220px;
height: 184px;
top: 40px;
border-radius: 0 0 25px 25px;
-webkit-border-radius: 0 0 25px 25px;
-moz-border-radius: 0 0 25px 25px;
}
image.png
恩,还有胳膊和腿,我们把相同的样式先提取出来
.l_arm, .r_arm, .l_leg, .r_leg {
width: 50px;
position: absolute;
}
然后画胳膊
.l_arm, .r_arm {
height: 150px;
border-radius: 25px;
-moz-border-radius: 25px;
-webkit-border-radius: 25px;
}
.l_arm {left: -58px;}
.r_arm {right: -58px;}
image.png
已经有一个大致的形状了,我们接着画腿
.l_leg, .r_leg {
height: 80px; top: 182px;
border-radius: 0 0 25px 25px;
-moz-border-radius: 0 0 25px 25px;
-webkit-border-radius: 0 0 25px 25px;
}
.l_leg {left: 45px;}
.r_leg {right: 45px;}
image.png
ok,一个安卓小机器人就画好了,还没有结束,我们的目的是让他动,现在我们就通过鼠标触发的方式,让他动起来。
.head:hover {
-webkit-transform: rotate(-5deg) translate(-4px, -8px);
transform: rotate(-5deg) translate(-4px, -8px);
-moz-transform: rotate(-5deg) translate(-4px, -8px);
}
当鼠标经过头部的时候,我们让他的头部做一个小的偏移,当鼠标离开的时候,还原到初始状态。
image.png
这里面有一个小的问题,就是,这个变化是非常生硬的,没有过度。需要过度的话,我们需要在头部css中新添加一个属性
-webkit-transition: all 0.1s ease-in;
好,这就代表着;这个外头的动作需要0.1s过渡,过渡效果为均匀过渡,这样动画就不会过于生硬。
我们继续把两个胳膊的动作也加上
.l_arm:hover{
-webkit-transform: rotate(15deg) translate(-14px, 0);
transform: rotate(15deg) translate(-14px, 0);
-moz-transform: rotate(15deg) translate(-14px, 0);
}
.r_arm:hover{
-webkit-transform: rotate(-30deg) translate(30px, 0);
transform: rotate(-30deg) translate(30px, 0);
-moz-transform: rotate(-30deg) translate(30px, 0);
}
image.png
image.png
好,我们安卓小机器人也就做完了。代码也不多,也不难,但是,很有趣。我接下来就把刚才所写的整合到一起。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Android</title>
</head>
<body>
<div class="android">
<div class="head">
<div class="l_ant"></div>
<div class="r_ant"></div>
<div class="l_eye"></div>
<div class="r_eye"></div>
</div>
<div class="body">
<div class="l_arm"></div>
<div class="r_arm"></div>
<div class="l_leg"></div>
<div class="r_leg"></div>
</div>
</div>
<style type="text/css">
div {
margin: 0;
padding: 0;
}
.android{
height: 404px; width: 334px;
margin: 100px auto;
}
div div {
background: #A4CA39;
position: relative;
}
.head{
width: 220px;
height: 100px;
top: 32px;
border-radius: 110px 110px 0 0;
-moz-border-radius: 110px 110px 0 0;
-webkit-border-radius: 110px 110px 0 0;
-webkit-transition: all 0.1s ease-in;
}
.l_eye, .r_eye {
background: #fff;
width: 20px; height: 20px;
position: absolute; top: 42px;
border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
}
.l_eye {left: 50px;}
.r_eye {right: 50px;}
.l_ant, .r_ant{
width: 6px; height: 50px;
position: absolute; top: -34px;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
}
.l_ant {
left: 50px;
transform: rotate(-30deg);
-webkit-transform: rotate(-30deg);
-moz-transform: rotate(-30deg);
}
.r_ant {
right: 50px;
transform: rotate(30deg);
-webkit-transform: rotate(30deg);
-moz-transform: rotate(30deg);
}
.body{
width: 220px; height: 184px;
top: 40px;
border-radius: 0 0 25px 25px;
-webkit-border-radius: 0 0 25px 25px;
-moz-border-radius: 0 0 25px 25px;
}
.l_arm, .r_arm, .l_leg, .r_leg {
width: 50px; position: absolute;
-webkit-transition: all 0.1s ease-in;
}
.l_arm, .r_arm {
height: 150px;
border-radius: 25px;
-moz-border-radius: 25px;
-webkit-border-radius: 25px;
}
.l_arm {left: -58px;}
.r_arm {right: -58px;}
.l_leg, .r_leg {
height: 80px; top: 182px;
border-radius: 0 0 25px 25px;
-moz-border-radius: 0 0 25px 25px;
-webkit-border-radius: 0 0 25px 25px;
}
.l_leg {left: 45px;}
.r_leg {right: 45px;}
.head:hover {
-webkit-transform: rotate(-5deg) translate(-4px, -8px);
transform: rotate(-5deg) translate(-4px, -8px);
-moz-transform: rotate(-5deg) translate(-4px, -8px);
}
.l_arm:hover{
-webkit-transform: rotate(15deg) translate(-14px, 0);
transform: rotate(15deg) translate(-14px, 0);
-moz-transform: rotate(15deg) translate(-14px, 0);
}
.r_arm:hover{
-webkit-transform: rotate(-30deg) translate(30px, 0);
transform: rotate(-30deg) translate(30px, 0);
-moz-transform: rotate(-30deg) translate(30px, 0);
}
</style>
</body>
</html>
网友评论