[CSS3] 学习笔记-CSS动画特效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[CSS3] 学习笔记-CSS动画特效相关的知识,希望对你有一定的参考价值。

在CSS3中,出现了很多出彩的效果,例如2D、3D以及过度、动画和多列等。这些效果为页面设计添加了很多的可选设计。

1、2D、3D转换

转换,是使元素改变尺寸、形状、位置的一种效果;通过CSS3转换,我们能够对元素进行移动、缩放、转动、拉伸或拉长;可以通过2D、3D元素来转换;

2D转换方法:

translate()、rotate()、scale()、skew()、matrix()

3D转换方法:

rotateX()

rotateY()

 1 <!doctype html>
 2 <html>
 3 <head>
 4     <meta charset="UTF-8">
 5     <title></title>
 6     <link rel="stylesheet" type="text/css" href="1.css">
 7 </head>
 8 <body>
 9     <div>这是一个初始效果</div>
10     <br/>
11     <div class="div2">这是一个改变后的效果</div>
12     <div class="div3">这是一个改变后的效果</div>
13     <div class="div4">这是一个改变后的效果</div>
14     <div class="div5">这是一个改变后的效果</div>
15     <div class="div6">这是一个改变后的效果</div>
16 
17     <div class="div7">这是一个改变后的效果</div>
18 </body>
19 </html>

 

对应的CSS文件:

 1 div{
 2     width:200px;
 3     height: 200px;
 4     color: blue;
 5 }
 6 .div2{
 7     /*这条语句不支持特定浏览器,因此运行可能无效;后面的语句是针对特定浏览器的*/
 8     transform: translate(200px, 100px);
 9 
10     /*这是让safari和chrome支持的语句*/
11     -webkit-transform:translate(100px,100px);
12 
13     /*这是让Ie支持的语句*/
14     -ms-transform:translate(100px,100px);
15 
16     /*这是让Opera支持的语句*/
17     -o-transform: translate(100px,100px);
18 
19     /*这是让firefox支持的语句*/
20     -moz-transform: translate(100px,100px);
21 }
22 .div3{
23     transform: rotate(100deg);
24 }
25 .div4{
26     margin-top: 200px;
27     transform: scale(1,2);
28 }
29 .div5{
30     transform: skew(20deg,20deg);
31 }
32 .div6{
33     transform: matrix(1, 0, 0, 1, 30, 30);
34 }
35 .div7{
36     font-size: 50px;
37     transform: rotateX(120deg) rotateY(120deg);
38

2、动画过渡

CSS3过渡是元素从一种样式转换成另一种样式,包括动画执行效果的CSS,动画执行的时间

属性:

transition:设置以下4个过渡属性

也可以分别设置这四个属性:

transition-property:过渡的名称

transition-duration:过渡花费的时间

transition-timing-function:过渡效果的时间曲线

transition-delay:过渡效果开始时间

1 <body>
2     <div>效果展示</div>
3 </body>

对应的CSS文件:

 1 div{
 2     width:100px;
 3     height: 100px;
 4     background-color: blue;
 5     transition: width 2s, height 2s,transform 2s;
 6     transition-delay:2s;
 7 }
 8 div:hover{
 9     width: 200px;
10     height: 200px;
11     transform: rotate(360deg);
12 }

3、动画

通过CSS3,可以进行动画创作,CSS3的动画需要遵循@keynames规则,另外需要规定动画的时长和名称

1 <body>
2 <div>动画效果</div>
3 </body>

对应的CSS文件:

 1 div{
 2     width: 200px;
 3     height: 200px;
 4     background-color: red;
 5     position: relative;
 6     /*animation:anim 5s;*/
 7 
 8     /*重复反方向执行动画效果*/
 9     animation: anim 5s infinite alternate;
10 }
11 /*若需浏览器适配,则:*/
12 /*“@keyframe”改为“@-webkit-keyframes”  */
13 @keyframes  anim{
14     0%{background: red;left:0;top:0}
15     25%{background: blue;left: 200px;top:0}
16     50%{background: gold;left: 200px;top:200px}
17     75%{background: green;left:0;top:200px}
18     100%{background: red;left:0;top:0}
19 }

4、多列

CSS3中,可以创建多列来对文本或区域进行布局

属性:

column-count:分列的数量

column-gap:每列中间间隔的距离

column-rule:每列之间间隔的线,包括线的颜色

 1 <body>
 2     <div class="div1">
 3         大家好,欢迎进入CSS的世界
 4         大家好,欢迎进入CSS的世界
 5         大家好,欢迎进入CSS的世界
 6         大家好,欢迎进入CSS的世界
 7         大家好,欢迎进入CSS的世界
 8         大家好,欢迎进入CSS的世界
 9         大家好,欢迎进入CSS的世界
10         大家好,欢迎进入CSS的世界
11         大家好,欢迎进入CSS的世界
12         大家好,欢迎进入CSS的世界
13         大家好,欢迎进入CSS的世界
14         大家好,欢迎进入CSS的世界
15         大家好,欢迎进入CSS的世界
16         大家好,欢迎进入CSS的世界
17         大家好,欢迎进入CSS的世界
18     </div>
19 </body>

对应的CSS文件:

1 .div1{
2     -webkit-column-count: 3;
3     -webkit-column-gap: 50px;
4     -webkit-column-rule: 5px outset red;
5 }

5、CSS瀑布流效果

 1 <body>
 2     <div class="container">
 3         <div><img src="1.jpg" width="200px" height="auto"><p>这里添加标签</p></div>
 4         <div><img src="2.jpg" width="auto" height="150px"></div>
 5         <div><img src="3.jpg" width="200px" height="auto"></div>
 6         <div><img src="4.jpg" width="300px" height="auto"></div>
 7         <div><img src="5.jpg" width="auto" height="150px"></div>
 8         <div><img src="6.jpg" width="200px" height="auto"><p>这里添加标签</p></div>
 9         <div><img src="7.jpg" width="auto" height="150px"></div>
10         <div><img src="8.jpg" width="200px" height="auto"></div>
11         <div><img src="9.jpg" width="auto" height="150px"><p>这里添加标签</p></div>
12     </div>
13 </body>

 

对应的CSS文件 :

 1 .container{
 2     -webkit-column-width: 250px;
 3     -webkit-column-gap:5px;
 4 }
 5 .container div{
 6     width: 250px;
 7     margin: 5px 0;
 8 }
 9 .container p{
10     text-align: center;
11 }

以上是关于[CSS3] 学习笔记-CSS动画特效的主要内容,如果未能解决你的问题,请参考以下文章

CSS 2D Transform 学习笔记

纯css3 加载loading动画特效

7款超赞的CSS3动画效果,值得收藏!

分享7款超赞的CSS3动画效果,值得你收藏!

精致动画特效及源代码

CSS3动画特效——transform详解