CSS動畫transform、transition和animation的區別
阿新 • • 發佈:2018-12-16
strong skew init mat matrix 開始 ansi 扭曲 觸發
CSS3屬性中關於制作動畫的三個屬性:Transform,Transition,Animation。
1、transform:描述了元素的靜態樣式,本身不會呈現動畫效果,可以對元素進行 旋轉rotate、扭曲skew、縮放scale和移動translate以及矩陣變形matrix。
div{ transform:scale(2); }
transition和animation兩者都能實現動畫效果
transform常常配合transition和animation使用
2、transition樣式過渡,從一種效果逐漸改變為另一種效果
transition是一個合寫屬性
transition:transition-property transition-duration transition-timing-function transition-delay
從左到右分別是:css屬性、過渡效果花費時間、速度曲線、過渡開始的延遲時間
div{
width:100px;
height:100px;
transition:transform 2s;
}
div:hover{
transform:rotate(180deg);
}
transition通常和hover等事件配合使用,需要由事件來觸發過渡
3、animation動畫 由@keyframes來描述每一幀的樣式
div{
animation:myAnimation 5s infinite
}
@keyframes myAnimation {
0%{left:0;transform:rotate(0);}
100%{left:200px;transform:rotate(180deg);}
}
區別:
(1)transform僅描述元素的靜態樣式,常常配合transition和animation使用
(2)transition通常和hover等事件配合使用,animation是自發的,立即播放
(3)animation可設置循環次數
(4)animation可設置每一幀的樣式和時間,transition只能設置頭尾
(5)transition可與js配合使用,js設定要變化的樣式,transition負責動畫效果,如:
/*css:*/
div{
width:100px;
height:100px;
transition:all 1s;
}
//js
divEle.onclick = function (){
divEle.style.width = "200px";
divEle.style.height = "200px";
}
CSS動畫transform、transition和animation的區別