css的动画效果
学习了一段时间CSS,总感觉自己行了,想自己写一个网页。打开别人网页的模板一看,好炫酷这图怎么还会转动。一下子涉及到了我的知识盲区,其实这就涉及到了CSS的动画效果。
CSS动画基础
一、
CSS @keyframes 规则
要创建 CSS 动画,你需要了解 @keyframes 规则。
@keyframes 规则是创建动画。
@keyframes 规则内指定一个 CSS 样式和动画将逐步从目前的样式更改为新的样式。
动画是使元素从一种样式逐渐变化为另一种样式的效果。
您可以改变任意多的样式任意多的次数。
请用百分比来规定变化发生的时间,或用关键词 "from" 和 "to",等同于 0% 和 100%。
0% 是动画的开始,100% 是动画的完成。
为了得到最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器。
使用@keyframes的代码如下所示:
@keframes first { from{} to{} } 或者 @keyframes first { 0%{} 100%{} }
想要编写CSS的动画,肯定要先给他一个名字,不给他名字谁知道它是谁呢。
CSS3 动画
当在 @keyframes 创建动画,把它绑定到一个选择器,否则动画不会有任何效果。
指定至少这两个CSS3的动画属性绑定向一个选择器:
- 规定动画的名称
- 规定动画的时长
div { animation:first 1s }
注意:动画的默认值都是0,如果你想要的运行动画,必须定义动画的名称和动画的持续时间。
CSS3的动画属性
下面的表格列出了 @keyframes 规则和所有动画属性:

想必学到这里你已经对于CSS的动画效果有了一定的了解了,接下来让我们试试自己动手来写一个CSS的动画吧!
我们来制作一个会旋转的太极图
首先是HTML部分,这部分很简单只需要建一个盒子
<div class="taiji"></div>
然后到了我们的重头戏,CSS部分这部分我们需要给太极盒子附上颜色大小和今天学的动画效果:
* { margin: 0; padding: 0; } body { background-color: #ccc; } .taiji { width: 150px; height: 300px; margin: 100px auto; border-right: 150px solid #000; background-color: #fff; border-radius: 150px; animation: rotate 2s infinite linear; } .taiji::before, .taiji::after { content: ''; margin-left: 50%; display: block; width: 50px; height: 50px; background-color: #fff; border: 50px solid #000; border-radius: 75px; } .taiji::after { background-color: #000; border: 50px solid #fff; } @keyframes rotate { from {} to { transform: rotate(-360deg); } }
到这里我们已经学习到了CSS动画效果的一些基础了,学无止境,fighting!
浙公网安备 33010602011771号