css3動畫效果:1基礎
阿新 • • 發佈:2017-06-26
prop 包含 rop lin tex color 變換 百分比 css屬性
和
css動畫分兩種:過渡效果transition 、關鍵幀動畫keyframes
一、過渡效果transition
需觸發一個事件(如hover、click)時,才改變其css屬性。
過渡效果通常在用戶將鼠標指針浮動到元素上時發生
過渡(transition)動畫只能定義首尾兩個狀態
transition主要包含四個屬性值:
transition-property:執行變換的屬性,默認值all,也可以時其他應用過渡效果的 CSS 屬性名稱列表,列表以逗號分隔,如width,height
transition-duration:變換延續的時間,以秒或毫秒計,eg. 5s
transition-timing-function:在延續時間段,變換的速率變化.
transition-timing-function:linear|ease|ease-in|ease-out|ease-in-out|cubic-bezier(n,n,n,n);
值 | 描述 |
---|---|
linear | 規定以相同速度開始至結束的過渡效果(等於 cubic-bezier(0,0,1,1))。 |
ease | 規定慢速開始,然後變快,然後慢速結束的過渡效果(cubic-bezier(0.25,0.1,0.25,1))。 |
ease-in | 規定以慢速開始的過渡效果(等於 cubic-bezier(0.42,0,1,1))。 |
ease-out | 規定以慢速結束的過渡效果(等於 cubic-bezier(0,0,0.58,1))。 |
ease-in-out | 規定以慢速開始和結束的過渡效果(等於 cubic-bezier(0.42,0,0.58,1))。 |
cubic-bezier(n,n,n,n) | 在 cubic-bezier 函數中定義自己的值。可能的值是 0 至 1 之間的數值。 |
transition-delay:變換延遲時間,以秒或毫秒計。
二、關鍵幀動畫
@keyframes 類似Flash中的關鍵幀動畫制作。
animate不需要觸發任何事件的情況下也可以隨時間變化而改變,所以可以在元素上直接調用。
關鍵幀動畫一般分兩步: 定義動畫、將動畫應用到元素上
step1 定義動畫:
有兩種方法來對它進行定義:關鍵字from
to
;或百分比
@keyframe 動畫名稱{
時間點 {
element status
}
時間點 {
元素狀態
}
}
如
@keyframe zoomIn{ 0% {opacity: 0, transform-origin:center; transform : rotate3d(0,0,1,-200deg); } 100% { opacity: 1, transform-origin:center; transform : none; } }
step2 綁定動畫,即將動畫應用到頁面元素上--利用animation屬性。
CSS3的Animation有八個屬性
- animation-name : keyframe 名稱
- animation-duration :動畫持續時間
- animation-delay : 動畫開始前的延遲
- animation-iteration-count : n|infinite, 默認值1
- animation-direction : normal|alternate;應該輪流反向播放動畫。 默認值normal(正常播放) (alternate輪流反向播放)
- animation-play-state
- animation-fill-mode
- animation-timing-function
一般簡寫為
animation: name duration timing-function delay iteration-count direction;
-webkit-animation: zoomIn 2s infinite linear;
animation: zoomIn 1s infinite linear;
瀏覽器兼容:
@-webkit-keyframe
@keyframe
-webkit-animation
animation
css3動畫效果:1基礎