CSS动画实用技巧

CSS3动画

  • Transform:对元素进行变形;
  • Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画。但只有两个关键贞。开始,结束。
  • Animation:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画。可以设置多个关键贞。

Transition与Animation:
transition需要触发一个事件 ,而animation在不需要触发任何事件的情况下也可以显式的随着时间变化来改变元 素css的属性值,从而达到一种动画的效果。

实用动画技巧

animation-delay为负值

animation-delay:定义动画何时开始。

  • 默认:0,立即执行动画
  • 正值:延时指定时间后,开始执行动画
  • 负值:立即执行,但跳过指定时间后进入动画

案例:

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<style type="text/css">
body{color: #fff;background: #222;}
h5{font-size: 14px;font-family: "Microsoft Yahei"; text-align: center;}
.spinner{width:80px;height:50px;margin:100px auto;text-align:center;}
.spinner > div{display:inline-block;width:6px;height:100%;
background:green;-webkit-animation: strechdelay 1.2s infinite ease-in-out ;}
.spinner .line2{-webkit-animation-delay:-1.1s; }
.spinner .line3{-webkit-animation-delay:-1.0s;}
.spinner .line4{-webkit-animation-delay:-0.9s; }
.spinner .line5{ -webkit-animation-delay:-0.8s; }/**/
@-webkit-keyframes strechdelay{
0%,40%,100%{ -webkit-transform:scaleY(.4);}
20%{-webkit-transform:scaleY(1); }
}
</style>

</head>
<body>
<h5>请使用webkit内核标准浏览器查看效果</h5>
<div class="spinner">
<div class="line1"></div>
<div class="line2"></div>
<div class="line3"></div>
<div class="line4"></div>
<div class="line5"></div>
</div>
</body>

负值的理解:
1
理解为在正式开始的这个时间点之前负值的那几个动画已经提前开始了
2
因为这几个.line的div设置的初始状态高度是100%,而动画在0%的时候是高40%。设置了正值的延时,在一开始这几个.line还没执行动画的时候就是一个长条,这样就不好看了.

妙用border颜色

实现loading效果
1.利用border实现
2.设置一边为亮色
3.定义动画的两个状态rotate(0)和rotate(360deg)
4.应用动画 animation:load 1s infinite linear;

巧用border宽度

使用border配合transition实现折角:border-top、border-right、border-bottom、border-left再结合伪类
要点:元素width:0;height:0;
3
border各边分别为0px
4
border相邻两边配合为0px
5
案例:

实现运动动画

实现圆周运动

transform-origin:250% center;
6
在线预览

实现椭圆运动

实现椭圆运动原理:圆周运动基础上让其父元素上下运动
7
在线预览

实现弧形运动

要点:animation-direction:alternate;
8
在线预览

CSS3 hover特效

要点:background综合设置,hover设置
在线预览

坚持原创技术分享,您的支持将鼓励我继续创作!