<html>
<head>
<meta charset="UTF-8">
<title>HTML5爱心跳动动画DEMO演示</title>
<style>
@import url(http://fonts.googleapis.com/css?family=Inconsolata:400,700)
@import url(http://fonts.googleapis.com/css?family=Hammersmith+One)
body {
background-color: #ccc
}
.container {
width: 512px
height: 380px
margin: auto
margin-top: 0
}
.heart {
z-index: 1
width: 150px
height: 150px
position: absolute
top: 50%
margin-top: -75px
left: 50%
margin-left: -75px
background-size: 100%
background-repeat: no-repeat
background-image:url("data:image/svg+xmlbase64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCINCgkgd2lkdGg9IjE3M3B4IiBoZWlnaHQ9IjE1OHB4IiB2aWV3Qm94PSIwIDAgMTczIDE1OCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTczIDE1OCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8cGF0aCBmaWxsPSIjRUY0NjU3IiBkPSJNMTU3LjMzMSwxNS41MDRjLTE5LjU1OS0xOS41NTktNTEuMjcxLTE5LjU1OS03MC44MzEsMGMtMTkuNTU5LTE5LjU1OS01MS4yNzEtMTkuNTU5LTcwLjgzMSwwDQoJYy0xOS41NTksMTkuNTU5LTE5LjU1OSw1MS4yNzEsMCw3MC44MzFsNzAuODMxLDcwLjgzbDcwLjgzMS03MC44M0MxNzYuODksNjYuNzc1LDE3Ni44OSwzNS4wNjQsMTU3LjMzMSwxNS41MDR6Ii8+DQo8L3N2Zz4=")
}
.hometown {
font-family:'Inconsolata', sans-serif
font-weight: bold
font-size: 2.0em
text-transform: uppercase
position: relative
z-index: 1
width: 512px
height: 512px
color: #FFF
}
#top {
width: 200px
margin: auto
position: relative
}
#top span {
height: 350px
position: absolute
width: 20px
left: 50%
margin-left: -10px
top: 110px
}
.char1 {
transform: rotate(-36deg)
}
.char2 {
transform: rotate(-24deg)
}
.char3 {
transform: rotate(-12deg)
}
.char4 {
transform: rotate(0deg)
}
.char5 {
transform: rotate(12deg)
}
.char6 {
transform: rotate(24deg)
}
.char7 {
transform: rotate(36deg)
}
#bottom span {
height: 350px
line-height: 700px
position: absolute
width: 20px
left: 50%
margin-left: -10px
top: 10px
}
#bottom .char1 {
transform: rotate(36deg)
}
#bottom .char2 {
transform: rotate(27deg)
}
#bottom .char3 {
transform: rotate(18deg)
}
#bottom .char4 {
transform: rotate(9deg)
}
#bottom .char5 {
transform: rotate(0deg)
}
#bottom .char6 {
transform: rotate(-9deg)
}
#bottom .char7 {
transform: rotate(-18deg)
}
#bottom .char8 {
transform: rotate(-27deg)
}
#bottom .char9 {
transform: rotate(-36deg)
}
.city {
font-family:"Hammersmith One"
display: inline-block
width: 100%
height: 300px
padding-top: 45px
text-align: center
font-size: 3.0em
z-index: 100
position: absolute
top: 50%
margin-top: -110px
}
.heart {
animation: HEARTBEAT 2.5s infinite
}
#top span {
animation: BOUNCE 2.5s infinite
}
@keyframes HEARTBEAT {
0% {
transform: scale(1)
}
5% {
transform: scale(1.3)
}
10% {
transform: scale(1.1)
}
15% {
transform: scale(1.5)
}
50% {
transform: scale(1)
}
100% {
transform: scale(1)
}
}
@keyframes BOUNCE {
0% {
top: 110px
}
10% {
top: 80px
}
15% {
top: 85px
}
20% {
top: 70px
}
75% {
top: 110px
}
100% {
top: 110px
}
}
</style>
<script src="js/prefixfree.min.js"></script>
</head>
<body>
<div class="container bg">
<div class="hometown">
<div class="heart">
</div>
<div id="top">Made in</div>
<div class="city">Boise</div>
<div id="bottom">With love</div>
</div>
</div>
<div style="text-align:centerclear:both">
<script src="/gg_bd_ad_720x90.js" type="text/javascript"></script>
<script src="/follow.js" type="text/javascript"></script>
</div>
<script src='js/jquery.js'></script>
<script src='js/jquery.lettering.js'></script>
<script src="js/index.js"></script>
</body>
</html>
js部分
一、准备工作进入到 /home/shiyanlou/ 目录下,新建空白文档:
命名为 Baymax.html (其它名字也可以,但后缀名必须是 .html):
使用 gedit 打开,准备编辑代码:
二、编写 HTML
填写以下代码:
<!doctype html>
<html>
<head><meta charset="utf-8"><title>Baymax</title></head>
<body>
<div id="baymax">
<!-- 定义头部,包括两个眼睛、嘴 -->
<div id="head">
<div id="eye"></div>
<div id="eye2"></div>
<div id="mouth"></div>
</div>
<!-- 定义躯干,包括心脏 -->
<div id="torso">
<div id="heart"></div>
</div>
<!-- 定义肚子腹部,包括 cover(和躯干的连接处) -->
<div id="belly">
<div id="cover"></div>
</div>
<!-- 定义左臂,包括一大一小两个手指 -->
<div id="left-arm">
<div id="l-bigfinger"></div>
<div id="l-smallfinger"></div>
</div>
<!-- 定义右臂,同样包括一大一小两个手指 -->
<div id="right-arm">
<div id="r-bigfinger"></div>
<div id="r-smallfinger"></div>
</div>
<!-- 定义左腿 -->
<div id="left-leg"></div>
<!-- 定义右腿 -->
<div id="right-leg"></div>
</div>
</body>
<html>
三、添加 CSS 样式
我们已经使用 HTML 定义好「大白」的各个元素,现在就需要利用到 CSS 来绘制它的样式外表。
由于「大白」是白色的,为了更容易辨识,我们把背景设为深色。
然后首先是头部:
body {
background: #595959
}
#baymax{
/*设置为 居中*/
margin: 0 auto
/*高度*/
height: 600px
/*隐藏溢出*/
overflow: hidden
}
#head{
height: 64px
width: 100px
/*以百分比定义圆角的形状*/
border-radius: 50%
/*背景*/
background: #fff
margin: 0 auto
margin-bottom: -20px
/*设置下边框的样式*/
border-bottom: 5px solid #e0e0e0
/*属性设置元素的堆叠顺序;拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面*/
z-index: 100
/*生成相对定位的元素*/
position: relative
}
效果预览:
赶紧再来添加眼睛和嘴吧!
#eye,
#eye2{
width: 11px
height: 13px
background: #282828
border-radius: 50%
position: relative
top: 30px
left: 27px
/*旋转该元素*/
transform: rotate(8deg)
}
#eye2{
/*使其旋转对称*/
transform: rotate(-8deg)
left: 69px top: 17px
}
#mouth{
width: 38px
height: 1.5px
background: #282828
position: relative
left: 34px
top: 10px
}
一个 mini 的「大白」,雏形初现:
接下来是躯干和腹部:
#torso,
#belly{
margin: 0 auto
height: 200px
width: 180px
background: #fff
border-radius: 47%
/*设置边框*/
border: 5px solid #e0e0e0
border-top: none
z-index: 1
}
#belly{
height: 300px
width: 245px
margin-top: -140px
z-index: 5
}
#cover{
width: 190px
background: #fff
height: 150px
margin: 0 auto
position: relative
top: -20px
border-radius: 50%
}
赋予「大白」象征生命的心脏:
#heart{
width:25px
height:25px
border-radius:50%
position:relative
/*向边框四周添加阴影效果*/
box-shadow:2px 5px 2px #ccc inset
right:-115px
top:40px
z-index:111
border:1px solid #ccc
}
现在的「大白」是这个样子的了:
还没有手和脚,怪萌怪萌的...「大白」需要温暖的手臂:
#left-arm,
#right-arm{
height: 270px
width: 120px
border-radius: 50%
background: #fff
margin: 0 auto
position: relative
top: -350px
left: -100px
transform: rotate(20deg)
z-index: -1
}
#right-arm{
transform: rotate(-20deg)
left: 100px
top: -620px
}
还没有手指头呢:
#l-bigfinger,
#r-bigfinger{
height: 50px
width: 20px
border-radius: 50%
background: #fff
position: relative
top: 250px
left: 50px
transform: rotate(-50deg)
}
#r-bigfinger{
left: 50px
transform: rotate(50deg)
}
#l-smallfinger,
#r-smallfinger{
height: 35px
width: 15px
border-radius: 50%
background: #fff
position: relative
top: 195px
left: 66px
transform: rotate(-40deg)
}
#r-smallfinger{
background: #fff
transform: rotate(40deg)
top: 195px
left: 37px
}
有点意思了:
迫不及待要给「大白」加上腿了吧:
#left-leg,
#right-leg{
height: 170px
width: 90px
border-radius: 40% 30% 10px 45%
background: #fff
position: relative
top: -640px
left: -45px
transform: rotate(-1deg)
z-index: -2
margin: 0 auto
}
#right-leg{
background: #fff
border-radius:30% 40% 45% 10px
margin: 0 auto
top: -810px
left: 50px
transform: rotate(1deg)
}
您最好对 HTML 和 CSS 有一定的了解
HTML代码
<div id="baymax">
<!-- 定义头部,包括两个眼睛、嘴 -->
<div id="head">
<div id="eye"></div>
<div id="eye2"></div>
<div id="mouth"></div>
</div>
<!-- 定义躯干,包括心脏 -->
<div id="torso">
<div id="heart"></div>
</div>
<!-- 定义肚子腹部,包括 cover(和躯干的连接处) -->
<div id="belly">
<div id="cover"></div>
</div>
<!-- 定义左臂,包括一大一小两个手指 -->
<div id="left-arm">
<div id="l-bigfinger"></div>
<div id="l-smallfinger"></div>
</div>
<!-- 定义右臂,同样包括一大一小两个手指 -->
<div id="right-arm">
<div id="r-bigfinger"></div>
<div id="r-smallfinger"></div>
</div>
<!-- 定义左腿 -->
<div id="left-leg"></div>
<!-- 定义右腿 -->
<div id="right-leg"></div>
</div>
背景颜色为灰色或者黑色,更容易衬托出大白
body {background: #595959
}
#baymax{
/*设置为 居中*/
margin: 0 auto
/*高度*/
height: 600px
/*隐藏溢出*/
overflow: hidden
}
#head{
height: 64px
width: 100px
/*以百分比定义圆角的形状*/
border-radius: 50%
/*背景*/
background: #fff
margin: 0 auto
margin-bottom: -20px
/*设置下边框的样式*/
border-bottom: 5px solid #e0e0e0
/*属性设置元素的堆叠顺序; 拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面*/
z-index: 100
/*生成相对定位的元素*/
position: relative
}
眼睛嘴巴的CSS
#eye,#eye2{
width: 11px
height: 13px
background: #282828
border-radius: 50%
position: relative
top: 30px
left: 27px
/*旋转该元素*/
transform: rotate(8deg)
}
#eye2{
/*使其旋转对称*/
transform: rotate(-8deg)
left: 69px top: 17px
}
#mouth{
width: 38px
height: 1.5px
background: #282828
position: relative
left: 34px
top: 10px
}
「大白」,雏形初现
接下来是躯干和腹部CSS:
#torso,
#belly{
margin: 0 auto
height: 200px
width: 180px
background: #fff
border-radius: 47%
/*设置边框*/
border: 5px solid #e0e0e0
border-top: none
z-index: 1
}
#belly{
height: 300px
width: 245px
margin-top: -140px
z-index: 5
}
#cover{
width: 190px
background: #fff
height: 150px
margin: 0 auto
position: relative
top: -20px
border-radius: 50%
}
「大白」象征生命的心脏
#heart{width:25px
height:25px
border-radius:50%
position:relative
/*向边框四周添加阴影效果*/
box-shadow:2px 5px 2px #ccc inset
rightright:-115px
top:40px
z-index:111
border:1px solid #ccc
}
「大白」的手臂
#left-arm,#right-arm{
height: 270px
width: 120px
border-radius: 50%
background: #fff
margin: 0 auto
position: relative
top: -350px
left: -100px
transform: rotate(20deg)
z-index: -1
}
#right-arm{
transform: rotate(-20deg)
left: 100px
top: -620px
}
大白的手指头css
#l-bigfinger,#r-bigfinger{
height: 50px
width: 20px
border-radius: 50%
background: #fff
position: relative
top: 250px
left: 50px
transform: rotate(-50deg)
}
#r-bigfinger{
left: 50px
transform: rotate(50deg)
}
#l-smallfinger,
#r-smallfinger{
height: 35px
width: 15px
border-radius: 50%
background: #fff
position: relative
top: 195px
left: 66px
transform: rotate(-40deg)
}
#r-smallfinger{
background: #fff
transform: rotate(40deg)
top: 195px
left: 37px
}
「大白」腿部css
#left-leg,#right-leg{
height: 170px
width: 90px
border-radius: 40% 30% 10px 45%
background: #fff
position: relative
top: -640px
left: -45px
transform: rotate(-1deg)
z-index: -2
margin: 0 auto
}
#right-leg{
background: #fff
border-radius:30% 40% 45% 10px
margin: 0 auto
top: -810px
left: 50px
transform: rotate(1deg)
}
完成