css3動畫那些事
css3動畫那些事
ease,ease-in,ease-in-out,ease-out區別
值 | 描述 |
---|---|
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 之間的數值 |
transform(變形)和transform-origin(變形原點)
transform(變形)和transform-origin(變形原點)的說明:
目前這兩個屬性得到了除去ie以外各個主流瀏覽器webkit,firefox,opera的支援,屬性名分別為
-webkit-transform,-moz-transform,-o-transform;
1、改變元素基點transform-origin
-
transform-origin是變形原點,也就是該元素圍繞著那個點變形或旋轉,該屬性只有在設定了transform屬性的時候起作用;
-
因為我們元素預設基點就是其中心位置,換句話說我們沒有使用transform-origin改變元素基點位置的情況下,transform進行的rotate,translate,scale,skew,matrix等操作都是以元素自己中心位置進行變化的。
-
但有時候我們需要在不同的位置對元素進行這些操作,那麼我們就可以使用transform-origin來對元素進行基點位置改變,使元素基點不在是中心位置,以達到你需要的基點位置。
-
下面我們主要來看看其使用規則:
transform-origin(X,Y):用來設定元素的運動的基點(參照點)。預設點是元素的中心點。其中X和Y的值可以是百分值,em,px,其中X也可以是字元引數值left,center,right;Y和X一樣除了百分值外還可以設定字元值top,center,bottom 。
-
語法:-moz-transform-origin: [ | | left | center | right ][ | | top | center | bottom ] ?
transform-origin接受兩個引數,它們可以是百分比,em,px等具體的值,也可以是left,center,right,或者 top,center,bottom等描述性引數 ; -
top left | left top 等價於 0 0;
-
top | top center | center top 等價於 50% 0
-
right top | top right 等價於 100% 0
-
left | left center | center left 等價於 0 50%
-
center | center center 等價於 50% 50%(預設值)
-
right | right center | center right 等價於 100% 50%
-
bottom left | left bottom 等價於 0 100%
-
bottom | bottom center | center bottom 等價於 50% 100%
-
bottom right | right bottom 等價於 100% 100%
-
其中 left,center right是水平方向取值,對應的百分值為left=0%;center=50%;right=100%
而
top center bottom是垂直方向的取值,其中top=0%;center=50%;bottom=100%;
如果只取一個值,表示垂直方向值不變。
注:
transform-origin並不是transform中的屬性值,他具有自己的語法。
但是他要結合transform才能起作用。
2、transform
- transform屬性可用於內聯(inline)元素和塊級(block)元素。它允許我們旋轉、縮放和移動元素,他有幾個屬性值引數:
- rotate(旋轉)允許你通過傳遞一個度數值來轉動一個物件;
- scale是一個縮放功能,可以讓任一元素變的更大。它使用一個或者兩個正數和負數以及小數作為引數;當使用一個引數時表示X軸和Y軸的縮放相同;
- translate就是基於X和Y 座標重新定位元素,當使用一個引數時表示X軸和Y軸的引數相同;
- skew傾斜(ps中的斜切),引數是度數,當使用一個引數時表示X軸和Y軸的引數相同;
- matrix矩陣變換,就是基於X和Y 座標重新定位元素,它使用6個引數
css3 mix-blend-mode 混合模式詳解
混合方式有以下幾種:
值 | 描述 |
---|---|
mix-blend-mode: normal | 正常 |
mix-blend-mode: multiply | 正片疊底 |
mix-blend-mode: screen | 濾色 |
mix-blend-mode: overlay | 疊加 |
mix-blend-mode: darken | 變暗 |
mix-blend-mode: lighten | 變亮 |
mix-blend-mode: color-dodge | 顏色減淡 |
mix-blend-mode: color-burn | 顏色加深 |
mix-blend-mode: hard-light | 強光 |
mix-blend-mode: soft-light | 柔光 |
mix-blend-mode: difference | 差值 |
mix-blend-mode: exclusion | 排除 |
mix-blend-mode: hue | 色相 |
mix-blend-mode: saturation; | 飽和度 |
mix-blend-mode: color; | 顏色 |
mix-blend-mode: luminosity; | 亮度 |
mix-blend-mode: initial; | 初始 |
mix-blend-mode: inherit; | 繼承 |
mix-blend-mode: unset; | 復原 |
其中,multiply屬性可以將圖片的白色背景變成透明。
Animation動畫屬性
1、animation-name:需要繫結到選擇器的 keyframe 名稱(例如fadeOne)
2、animation-duration:完成動畫所花費的時間,以秒或毫秒計
3、animation-timing-function:動畫的速度曲線
-
linear
-
ease
-
ease-in
-
ease-out
-
ease-in-out
-
cubic-bezier
4、animation-delay:動畫開始之前的時間延遲
5、animation-iteration-count:動畫迴圈的次數
6、animation-direction:規定動畫是否反向輪播,normal是預設值,正常播放;alternate表示動畫反向輪播
7、animation-fill-mode:規定動畫在播放之前或之後,其動畫效果是否可見
- none 不改變預設行為
- forwards 當動畫完成後,保持最後一個屬性值(在最後一個關鍵幀中定義)
- backwards 在 animation-delay 所指定的一段時間內,在動畫顯示之前,應用開始屬性值(在第一個關鍵幀中定義)
- both 向前和向後填充模式都被應用