CSS3旋转及动画

一、CSS3转换

1、元素的2D转换

 1 transform:none;/*不进行转换*/
 2 transform:translate(x,y);/*定义2dD转换,移动*/
 3 transform:translate3d(x,y,z);/*定义3D转换*/
 4 transform:tranlateX(value);/*使用x轴的值转换*/
 5 transform:tranlateY(value);/*使用y轴的值转换*/
 6 transform:scale(value);/*2D缩放*/
 7 transform:scale3D(value1,value2,value3);/*3D缩放*/
 8 transform:skew(x-angle,y-angle);/*沿着 X 和 Y 轴的 2D 倾斜转换*/
 9 transform:rotate(angle);/* 2D 旋转,在参数中规定角度*/
10 transform:rotateX(angle);  /*沿着 X 轴的 3D 旋转*/
11 transform:rotateY(angle);  /*沿着 Y 轴的 3D 旋转*/
12 transform:rotateZ(angle);  /*沿着 Z 轴的 3D 旋转*/

2、元素的过渡效果

(1)transition-property 指定CSS属性的name,transition效果

(2)transition-duration 需要指定多少秒或毫秒才能完成

(3)transition-timing-function 转速曲线

其值有:linear(匀速)、ease(先慢后快)、ease-in(以慢速开始)、ease-out(以慢速结束)、ease-in-out(以慢速开始和结束)

(4)transition-delay 定义transition效果开始的时候

3、案例:(翻转导航栏)

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6         <style type="text/css">
 7             ul>li{
 8                 position: relative;
 9                 list-style: none;
10                 float: left;
11                 margin-left: 15px;
12                 width: 80px;
13                 height: 30px;
14                 text-align: center;
15                 line-height: 30px;
16                 
17             }
18             ul>li:hover{
19                 transform: rotateX(90deg);
20                 transform-style: preserve-3d;
21                 transition: all 1s linear;
22                 /* transform: rotate3d(30deg,30deg,30deg); */
23             }
24             .box1,.box2{
25                 position: absolute;
26                 width: 80px;
27                 height: 30px;
28             }
29             .box1{
30                 background-color: #FAEBD7;
31                 transform: translateZ(15px);
32             }
33             .box2{
34                 background-color: #ADFF2F;
35                 transform: translateY(15px) rotateX(-90deg);
36             }
37         </style>
38     </head>
39     <body>
40         <ul>
41             <li>
42                 <div class="box1">1</div>
43                 <div class="box2">首页</div>
44             </li>
45             <li>
46                 <div class="box1">2</div>
47                 <div class="box2">首页</div>
48             </li>
49             <li>
50                 <div class="box1">3</div>
51                 <div class="box2">首页</div>
52             </li>
53             <li>
54                 <div class="box1">4</div>
55                 <div class="box2">首页</div>
56             </li>
57             <li>
58                 <div class="box1">5</div>
59                 <div class="box2">首页</div>
60             </li>
61             
62         </ul>
63     </body>
64 </html>

二、动画

1、

1 @keyframes animationName{
2     from{}
3     to{}
4 }

2、属性

animation 所有动画属性的简写属性

1 animation-name;/*指定要绑定到选择器的关键帧的名称*/
2 animation-duration;/*设置动画将如何完成一个周期*/
3 animation-delay/*设置动画在启动前的延迟间隔*/
4 animation-iteration-count/*定义动画的播放次数 infinite 无限次*/
5 animation-direction/*指定是否应该轮流反向播放动画*/
6 animation-fill-mode/*规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放
7 时),要应用到元素的样式*/
8 animation-play-state/*指定动画是否正在运行或已暂停*/

3、案例:(相册)

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="utf-8">
 5         <title></title>
 6         <style type="text/css">
 7             body{
 8                 perspective: 1800px;
 9             }
10             .box{
11                 position: relative;
12                 margin: 120px auto;
13                 width: 500px;
14                 height: 500px;
15                 transform-style: preserve-3d;
16                  animation: rotate 10s infinite linear;
17                  /* border: 4px solid black; */
18             }
19             .box:hover{
20                 animation-play-state:paused
21             }
22             .box1{
23                 position: absolute;
24                 top: 0;
25                 left: 0;
26                 width: 500px;
27                 height: 300px;
28                 background-image: url(img/k.jpg);
29                 background-size: cover;
30                 
31             }
32             @keyframes rotate{
33                 from{
34                      transform: rotateX(-10deg) rotateY(0deg)
35                 }
36                 to{
37                      transform: rotateX(-10deg) rotateY(360deg)
38                 }
39             }
40             .box>.box1:nth-child(1){
41                 transform: translateZ(450px) ;
42             }
43             .box>.box1:nth-child(2){
44                 transform:rotateY(60deg) translateZ(450px)  ;
45             }
46             .box>.box1:nth-child(3){
47                 transform: rotateY(120deg) translateZ(450px) ;
48             }
49              .box>.box1:nth-child(4){
50                 transform:rotateY(180deg) translateZ(450px)  ;
51             } 
52             .box>.box1:nth-child(5){
53                 transform:rotateY(240deg) translateZ(450px)  ;
54             }
55             .box>.box1:nth-child(6){
56                 transform:rotateY(300deg)  translateZ(450px) ;
57             }
58             
59         </style>
60     </head>
61     <body>
62         <div class="box">
63             <div class="box1"></div>
64             <div class="box1"></div>
65             <div class="box1"></div>
66             <div class="box1"></div>
67             <div class="box1"></div>
68             <div class="box1"></div>
69         </div>
70     </body>
71 </html>

 

 
posted @ 2021-01-14 21:11  猫仔发发  阅读(179)  评论(0)    收藏  举报