1. 程式人生 > >css之過渡、變換

css之過渡、變換

一.過渡

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>過渡</title>
 6     <style type="text/css">
 7     body{
 8         height: 500px;
 9         border: 1px solid red;
10         position: relative;
11     }
12 div{ 13 width: 100px; 14 height: 100px; 15 background: red; 16 position: absolute; 17 left: 0; top: 0; 18 transition: 5s all cubic-bezier(0.570, -0.440, 0.520, 1.430); 19 } 20 body:hover div{ 21 left: 800px; 22 } 23 </style
> 24 </head> 25 <body> 26 <!-- 27 過渡,就是從一個值到另一個值之間的過程,就是過渡 28 29 transition 30 比如: 31 transition: 1s 1s all ease; 後三個值可以省略 32 33 第一個值:過渡的總時間 單位是s或ms 34 35 第二個值:延遲過渡的時間 單位是s或ms
36 37 第三個值:需要過渡的樣式 38 39 第四個值:過渡的方式 40 linear 勻速 41 ease 慢速開始,然後慢慢變快 42 ease-in 慢速開始 43 ease-out 慢速結束 44 ease-in-out 開始和結束都滿 45 cubic-bezier(1,0,1,0) 貝瑟爾曲線 46 貝瑟爾曲線工具: 47 http://xuanfengge.com/easeing/ceaser/ 48 --> 49 <div></div> 50 </body> 51 </html>

二.變換

2.1 transformtranslate位移

變換
transform
位移
屬性translateX()x軸的位置,正值往右,負值往左
屬性translateY()y軸的位置,正值往下,負值往上
translate(x軸的位移量,y軸的位移量)

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>變換</title>
 6     <style type="text/css">
 7     body{
 8         height: 500px;
 9         border: 
10         1px solid red;
11     }
12       div{
13           width: 100px;
14           height: 100px;
15           background: red;
16           transition: 1s;
17       }
18       body:hover div{
19           transform:translate(100px,200px);
20       }
21     </style>
22 </head>
23 <body>
24     <div></div>
25 </body>
26 </html>

2.2 transform之變換rotate

 

旋轉
rotate() 接收的是一個度數deg,正值順時針,負值逆時針

 

 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>變換</title>
 6     <style type="text/css">
 7     body{
 8         height: 500px;
 9         border: 
10         1px solid red;
11     }
12       div{
13           width: 100px;
14           height: 100px;
15           background: red;
16           margin: 100px auto;
17           transition: 1s;
18       }
19       body:hover div{
20           transform:rotate(45deg);
21       }
22     </style>
23 </head>
24 <body>
25     <div></div>
26 </body>
27 </html>

 

2.3 transform之縮放scale
     
縮放

屬性scale()接收的是數值,可以使浮點數 當大於1--放大效果;小於1 是縮小效果

 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>變換</title>
 6     <style type="text/css">
 7     body{
 8         height: 500px;
 9         border: 
10         1px solid red;
11     }
12       div{
13           width: 100px;
14           height: 100px;
15           background: red;
16           margin: 100px auto;
17           transition: 1s;
18       }
19       body:hover div{
20           transform:scale(2);
21       }
22     </style>
23 </head>
24 <body>    
25     <div></div>
26 </body>
27 </html>

 

2.4 transform之斜切skew

 

斜切
接收的是旋轉角度
屬性skewX()x軸的斜切角度
屬性skewY()
y軸的斜切角度
skew(30deg,30deg)

 

 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>變換</title>
 6     <style type="text/css">
 7     body{
 8         height: 500px;
 9         border: 
10         1px solid red;
11     }
12       div{
13           width: 100px;
14           height: 100px;
15           background: red;
16           margin: 100px auto;
17           transition: 1s;
18       }
19       body:hover div{
20           transform: skew(40deg,45deg);
21       }
22     </style>
23 </head>
24 <body>
25     <div></div>
26 </body>
27 </html>

 

2.5 變換原點及解析位置

原點預設是center中心,解析按照程式碼順序解析

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>變換原點及解析順序</title>
 6     <style type="text/css">
 7     body{
 8         width: 800px;
 9         height: 600px;
10         border: 1px solid purple;
11     }
12     div{
13         width: 100px;
14         height: 100px;
15         background: red;
16         margin-top: 130px;
17         transition: 1s;
18         transform-origin: left top;/*從左上為原點變換 */
19     }
20     body:hover #box1{
21         transform: scale(2) translate(200px,0);
22         /*解析順序:先擴大兩倍,再向x正半軸位移200px*/
23     }
24     body:hover #box2{
25         transform:translate(200px,0) scale(2);
26         /*解析順序:先向x正半軸位移200px,再擴大兩倍*/
27     }
28     </style>
29 </head>
30 <body>
31     <div id="box1"></div>
32     <div id="box2"></div>
33     <!-- 
34         變換原點
35               transform-origin:
36                 left top
37                 right bottom
38                 center
39                 預設是center 當設定相應的值後,會按照相應的設定的值發生變換
40 
41      -->
42 </body>
43 </html>