過渡和動畫都是CSS3
的重要部分,今天有時間,瞭解些相關內容並記錄下。
在開始以前,首先看看CSS3
的轉化。css
CSS3
的轉化分爲如下幾種:web
每種轉化都還有對應的3d版本性能
注意:閉合的內聯元素不支持轉化,過渡和動畫:如<span>、<small>、<i>等。能夠經過添加樣式 display: inline-block 或 display: block 來轉化成塊級元素。
字體
translate()方法,根據左(X軸)和頂部(Y軸)位置給定的參數,從當前元素位置移動。動畫
span { display: inline-block; transform: translate(50px,100px); /* 向下移動50像素,向右移動100像素 */ -ms-transform: translate(50px,100px); /* IE 9 */ -webkit-transform: translate(50px,100px); /* Safari and Chrome */ }
rotate()方法,在一個給定度數順時針旋轉的元素。負值是容許的,這樣是元素逆時針旋轉。spa
i { display: block; transform: rotate(30deg); /* 順時針旋轉30度,負數爲逆時針旋轉 */ -ms-transform: rotate(30deg); /* IE 9 */ -webkit-transform: rotate(30deg); /* Safari and Chrome */ }
scale()方法,該元素增長或減小的大小,取決於寬度(X軸)和高度(Y軸)的參數:3d
div { display: inline; /*這樣設置是縮放不生效 */ transform: scale(2,3); /*長擴大2倍,寬擴大3倍,小於1的小數爲縮小 */ -ms-transform:scale(2,3); /* IE 9 */ -webkit-transform: scale(2,3); /* Safari */ transform: scale(2,3); /* 標準語法 */ }
skew() 包含兩個參數值,分別表示X軸和Y軸傾斜的角度,若是第二個參數爲空,則默認爲0,參數爲負表示向相反方向傾斜。(想象成一根直的柱子,被推歪了...)code
div { transform: skew(30deg,20deg); -ms-transform: skew(30deg,20deg); /* IE 9 */ -webkit-transform: skew(30deg,20deg); /* Safari and Chrome */ }
matrix()方法和2D變換方法合併成一個。
matrix 方法有六個參數,包含旋轉,縮放,移動(平移)和傾斜功能。orm
div { transform:matrix(0.866,0.5,-0.5,0.866,0,0); -ms-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* IE 9 */ -webkit-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* Safari and Chrome */ }
2D 版ip
3D 版
CSS3中,咱們爲了添加某種效果能夠從一種樣式轉變到另外一個的時候,無需使用Flash動畫或JavaScript。
過渡和動畫均可以改變元素的樣式,但他們中間也有些不一樣:
總的來講:通常簡單的樣式使用過渡,實在須要複雜的效果再考慮使用動畫
div { transition-property: width; /*可使用轉化更好的過渡 */ transition-duration: 1s; transition-timing-function: linear; transition-delay: 2s; /* Safari */ -webkit-transition-property:width; -webkit-transition-duration:1s; -webkit-transition-timing-function:linear; -webkit-transition-delay:2s; } /*簡寫 */ div { transition: width 1s linear 2s; /* Safari */ -webkit-transition:width 1s linear 2s; }
CSS3,咱們能夠建立動畫,它能夠取代許多網頁動畫圖像,Flash動畫,和JAVAScripts。
動畫屬性:
1.經過@keyframes規則建立動畫
/*建立動畫,字體顏色由紅變藍 */ @keyframes changeColor { from { color: red; } to { color: blue; } }
2.元素綁定動畫
span { display: inline-block; /*內聯元素要轉成block元素 */ animation: changeColor 1s linear; /*綁定動畫,並設置動畫時間和執行曲線 */ }
動畫還可使用百分比來更加精細的控制動畫流程:
@keyframes changeColor { 0% {color: red;} 25% {color: yellow;} 50% {color: green;} 75% {color: pickle;} 100% {color: blue;} } /* Safari 與 Chrome */ @-webkit-keyframes changeColor { 0% {color: red;} 25% {color: yellow;} 50% {color: green;} 75% {color: pickle;} 100% {color: blue;} }