CSS的過渡屬性transition能夠僅經過CSS來實現簡單的動畫效果,同時它是一個簡寫屬性,由transition-property、transition-duration、transition-timing-function和transition-delay複合而成。css
transition-property: all; // 默認爲all,全部可被動畫的屬性都表現出過渡動畫。
transition-property: none; // 沒有動畫效果
transition-property: width, height; //也能夠取其餘屬性的值
複製代碼
transition-duration: 1s;
transition-duration: 1ms;
transition-duration: 1s, 10s, 10ms; // 能夠應用多個值,對應於transition-property的多個屬性,表示每一個屬性對應的延時時間
複製代碼
transition-timing-function: cubic-bezier(n, n, n, n); // 在bezier 函數中自定義 0 ~ 1 之間的數值
transition-timing-function: ease; // 默認值,慢速開始,中間變快,慢速結束;至關於 cubic-bezier(0.25, 0.1, 0.25, 1)。
transition-timing-function: linear; // 勻速運動;至關於 cubic-bezier(0, 0, 1, 1)。
transition-timing-function: ease-in; // 慢速開始;至關於 cubic-bezier(0.42, 0, 1, 1)。
transition-timing-function: ease-out; // 慢速結束;至關於 cubic-bezier(0, 0, 0.58, 1)
transition-timing-function: ease-in-out; // 慢速開始,慢速結束;至關於 cubic-bezier(0.42, 0, 0.58, 1)
transition-timing-function: step-start;
transition-timing-function: step-end;
transition-timing-function: steps(4, end);
複製代碼
transition-delay: 3s;
複製代碼
transition是上面四個過渡屬性的簡寫,其中只有transition-duration是必填屬性。html
transition: all 5s linear .2s; // 以空格隔開屬性
transition: all 5s linear .2s, height 3s ease-in-out; // 能夠以逗號隔開多個過渡。
複製代碼
transition通常在css中配合:hover, :active等僞類使用,實現相應等動畫效果。bash
.app {
width: 300px;
transition: all 3s linear .2s;
}
.app:hover {
width: 100;
}
複製代碼
相似上面這種簡單的鼠標移到class=app的html元素上,會出現簡單的動畫。app
過渡分爲兩個階段:前進(forward)和反向(reverse),下面會用具體的例子來詳細講述這兩個階段。函數
.app {
width: 300px;
transition: all 3s linear .2s;
}
.app:hover {
width: 100;
}
複製代碼
.app {
width: 300px;
}
.app:hover {
width: 100;
transition: all 3s linear .2s;
}
複製代碼
.app {
width: 300px;
transition: all 3s linear .2s;
}
.app:hover {
width: 100;
transition: all 1s linear .2s;
}
複製代碼