HTML5实现动画效果的方式汇总

  /*定义动画:从-400px的位置移动到1600px的位置 */

  @keyframes carAnimation

  {

  0% { left:-400px; } /* 指定初始位置,0%等同于from*/

  100% { left:1600px; } /* 指定最终位置,100%等同于to*/

  }

  /* Safari and Chrome */

  @-webkit-keyframes carAnimation

  {

  0% {left:-400px; }

  100% {left:1600px; }

  }

  /* Firefox */

  @-moz-keyframes carAnimation

  {

  0% {left:-400; }

  100% {left:1600px; }

  }

  /*IE暂不支持,此处定义是为了向后兼容IE10*/

  @-ms-keyframes carAnimation

  {

  0% {left:-400px; }

  100%{left:1600px; }

  } @keyframes tyreAnimation

  {

  0% {transform: rotate(0); }

  100% {transform: rotate(1800deg); }

  }

  @-webkit-keyframes tyreAnimation

  {

  0% { -webkit-transform: rotate(0); }

  100% { -webkit-transform: rotate(1800deg); }

  }

  @-moz-keyframes tyreAnimation

  {

  0% { -moz-transform: rotate(0); }

  100% { -moz-transform: rotate(1800deg); }

  }

  @-ms-keyframes tyreAnimation

  {

  0% { -ms-transform: rotate(0); }

  100% { -ms-transform: rotate(1800deg); }

  } #container

  {

  position:relative;

  width:100%;

  height:600px;

  overflow:hidden; /*这个很重要*/

  }

  #car

  {

  position:absolute; /*汽车在容器中采用绝对定位*/

  width:400px;

  height:210px; /*汽车的总高度,包括轮胎和底盘*/

  z-index:1; /*让汽车在背景的上方*/

  top:300px; /*距顶端的距离(y轴)*/

  left:50px; /*距左侧的距离(x轴)*/

  /*以下内容赋予该元素预先定义的动画及相关属性*/

  -webkit-animation-name:carAnimation; /*名称*/

  -webkit-animation-duration:10s; /*持续时间*/

  -webkit-animation-iteration-count:infinite; /*迭代次数-无限次*/

  -webkit-animation-timing-function:linear; /*播放动画时从头到尾都以相同的速度*/

  -moz-animation-name:carAnimation; /*名称*/

  -moz-animation-duration:10s; /*持续时间*/

  -moz-animation-iteration-count:infinite; /*迭代次数-无限次*/

  -moz-animation-timing-function:linear; /*播放动画时从头到尾都以相同的速度*/

  -ms-animation-name:carAnimation; /*名称*/

  -ms-animation-duration:10s; /*持续时间*/

  -ms-animation-iteration-count:infinite; /*迭代次数-无限次*/

  -ms-animation-timing-function:linear; /*播放动画时从头到尾都以相同的速度*/

  animation-name:carAnimation; /*名称*/

  animation-duration:10s; /*持续时间*/

  animation-iteration-count:infinite; /*迭代次数-无限次*/

  animation-timing-function:linear; /*播放动画时从头到尾都以相同的速度*/

  }

  /*车身*/

  #chassis

  {

  position:absolute;

  width:400px;

  height:130px;

  background:#FF9900;

  border: 2px solid #FF6600;

  }

  /*轮胎*/

  .tire

  {

  z-index:1; /*同上,轮胎也应置于背景的上方*/

  position:absolute;

  bottom:0;

  border-radius:60px; /*圆半径*/

  height:120px; /* 2*radius=height */

  width:120px; /* 2*radius=width */

  background:#0099FF; /*填充色*/

  border:1px solid #3300FF;

  -webkit-animation-name:tyreAnimation;

  -webkit-animation-duration:10s;

  -webkit-animation-iteration-count:infinite;

  -webkit-animation-timing-function:linear;

  -moz-animation-name:tyreAnimation;

  -moz-animation-duration:10s;

  -moz-animation-iteration-count:infinite;

  -moz-animation-timing-function:linear;

  -ms-animation-name:tyreAnimation;

  -ms-animation-duration:10s;

  -ms-animation-iteration-count:infinite;

  -ms-animation-timing-function:linear;

  animation-name:tyreAnimation;

  animation-duration:10s;

  animation-iteration-count:infinite;

  animation-timing-function:linear;

  }

  #fronttire

  {

  right:20px; /*设置右边的轮胎距离边缘的距离为20*/

  }

  #backtire

  {

  left:20px; /*设置左边的轮胎距离边缘的距离为20*/

  }

  #grass

  {

  position:absolute; /*背景绝对定位在容器中*/

  width:100%;

  height:130px;

  bottom:0;

  /*让背景色线性渐变,bottom,表示渐变的起始处,第一个颜色值是渐变的起始值,第二个颜色值是终止值 */

  background:linear-grdaient(bottom,#33CC00,#66FF22);

  background:-webkit-linear-gradient(bottom,#33CC00,#66FF22);

  background:-moz-linear-gradient(bottom,#33CC00,#66FF22);

  background:-ms-linear-gradient(bottom,#33CC00,#66FF22);

  }

  .hr,.vr

  {

  position:absolute;

  background:#3300FF;

  }

  .hr

  {

  height:1px;

  width:100%; /*轮胎的水平线*/

  left:0;

  top:60px;

  }

  .vr

  {

  width:1px;

  height:100%; /*轮胎的垂直线*/

  left:60px;

  top:0;

  }