五、translate 移動 transform:translate(50px, 50px);
六、perspective 鏡頭到元素平面的距離,全部元素都是放置在z=0的平面上,好比perspective(300px)表示,鏡頭距離元素表面的位置是300px;//該屬性要放在動做屬性以前
transition:對象的屬性動畫
transition:
property
duration
timing-function
delay;
eg:
.div{width:10px;}
.div:hover{transition:width:100px 2s ease-in-out 1s;}//1s後div原來width:10px變爲100px,所花時間爲2s,速度爲先加速再減速。
值得深刻理解的transition-timing-function狀態變化速度,默認值是ease,不是勻速,是逐漸變慢。
transition的使用注意:
一、目前,各大瀏覽器(包括IE10)都已經支持無前綴的transition,因此transition已經能夠很安全地不加瀏覽器前綴。
三、transition須要明確知道,開始狀態和結束狀態的具體數值,才能計算出中間狀態。好比,height從0變到100px;transition能夠算出中間狀態,也就是說,若是開始或結束的設置是height:auto,那麼不會產生動畫效果。相似的狀況還有display:none到block,background:url(1.jpg)到url(2.jpg)等。
transition的侷限:
一、須要時間觸發,因此無法再網頁加載時候自動發送;
二、一次性的,不能重複發生,除非一再觸發;
三、只能定義開始狀態和結束狀態,不定定義中間狀態,也就是隻有兩個狀態;
四、一條transition規則,只能定意思一個屬性變化,不能設計多個屬性。
animation:與元素綁定動畫效果,是transition屬性的擴展,彌補他的不足。
animation:
name
duration
timing-function
delay
iteration-count
direction;
在學animation以前首先要先弄懂keyframes,叫作關鍵幀。
keyframes是什麼呢,前面咱們再使用transition製做一個簡單的transition效果時候,咱們包括了初始屬性和最終屬性,一個開始執行動做時間和延續動做時間以及動做的變換速率,其實這些都是一箇中間值,若是咱們要控制得更細一點,好比說我要第一時間段執行什麼動做效果,第二個時間段執行什麼動做,transition就沒法實現,此時,咱們可使用keyframes關鍵幀來控制。
keyframes的語法:
@keyframes
animationname {
keyframes-selector {
css-styles;}}
值 |
描述 |
animationname |
必需。定義動畫的名稱。 |
keyframes-selector |
必需。動畫時長的百分比。css 合法的值:git
- 0-100%
- from(與 0% 相同)
- to(與 100% 相同)
|
css-styles |
必需。一個或多個合法的 CSS 樣式屬性。 |
eg:
@keyframes mymove
{
0% {top:0px;}
25% {top:200px;}
50% {top:100px;}
75% {top:200px;}
100% {top:0px;}
}
animation:mymove 5s ease 0s infinite alternate
先用keyframes定義一個mymove的動畫名字,總共分紅五個階段的狀態(如上述代碼),而後animation調用,動畫無延遲,無限次無限循環,歷時5s。