天天看點

CSS 過渡、變形和動畫過渡變形動畫

過渡、變形和動畫

  • 過渡
    • transition-property屬性
    • transition-duration屬性
    • transition-timing-function屬性
    • transition-delay屬性
    • transition屬性
  • 變形
    • 中心點
    • 平移
    • 縮放
    • 傾斜
    • 旋轉
  • 動畫

過渡

為元素從一種樣式轉變為另一種樣式時添加效果,例如漸顯、漸弱、動畫快慢等。

transition-property屬性

  • transition-property 屬性用于指定應用過渡效果的CSS屬性的名稱。
  • 基本文法格式:transition-property: none | all | property;
  • 屬性描述:
屬性值 描述
none 沒有屬性會獲得過渡效果
all 所有屬性都将獲得過渡效果
property 定義應用過渡效果的CSS屬性名稱,多個名稱之間以逗号分隔

transition-duration屬性

  • transition-duration屬性用于定義過渡效果花費的時間,預設值為0,常用機關是秒(s)或者毫秒(ms)
  • 基本文法格式:transition-duration:time;

transition-timing-function屬性

  • transition-timing-function屬性規定過渡效果的速度曲線,預設值為“ease“
  • 基本文法格式: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) 定義用于加速或者減速的貝塞爾曲線的形狀,它們的值在0~1之間

transition-delay屬性

  • transition-delay屬性規定過渡效果何時開始,預設值為0,常用機關是秒(s)或者毫秒(ms)
  • 基本文法格式:transition-delay:time;
  • 正數:過渡動作會延遲觸發。
  • 負數:過渡動作會從該時間點開始,之前的動作被截斷。

transition屬性

  • transition屬性是一個複合屬性,用于在一個屬性中設定transition-property、transition-duration、transition-timing-function、transition-delay四個過渡屬性。
  • 基本文法格式:transition:property duration timing-function delay;
  • 注意:1.順序不能颠倒

    2.無論是單個屬性還是簡寫屬性,使用時都可以實作多個過渡效果

    3.如果使用transition簡寫屬性設定多種過渡效果,需要為每個過渡屬性集中指定所有的值,并且使用逗号進行分隔。

變形

  • css3變形包括:平移,旋轉,縮放,傾斜
  • 基本文法格式:transform:none (不變形)| transform-functions(變形函數或變形函數清單)
  • transform-functions函數
    CSS 過渡、變形和動畫過渡變形動畫

中心點

  • 變形操作都是以元素的中心點為基準進行的,如果需要改變這個中心點,可以使用transform-origin屬性。
  • 基本文法格式:transform-origin: x-axis y-axis z-axis;
  • 屬性參數:

    transform-origin屬性包含三個參數,其預設值分别為50% 50% 0,各參數的具體含義

參數 描述
x-axis 定義視圖被置于X軸的何處。可能的值有:left,center,right,length,%
y-axis 定義視圖被置于Y軸的何處。可能的值有:top,center,bottom,length,%
z-axis 定義視圖被置于Z軸的何處。可能的值有:length

平移

  • transform:translate(x-value,y-value);
  • 說明:x-value指元素在水準方向上移動的距離,y-value指元素在垂直方向上移動的距離。如果省略了第二個參數,則取預設值0。當值為負數時,表示反方向移動元素
  • 示意圖
    CSS 過渡、變形和動畫過渡變形動畫

縮放

  • transform:scale(x-axis,y-axis);
  • 說明:x-axis和y-axis參數值可以是正數、負數和小數。正數值表示基于指定的寬度和高度放大元素。負數值不會縮小元素,而是反轉元素(如文字被反轉),然後再縮放元素。如果第二個參數省略,則第二個參數等于第一個參數值。
  • 示意圖
    CSS 過渡、變形和動畫過渡變形動畫

傾斜

  • transform:skew(x-angle,y-angle);
  • 說明:參數x-angle和y-angle表示角度值,第一個參數表示相對于X軸進行傾斜,第二個參數表示相對于Y軸進行傾斜,如果省略了第二個參數,則取預設值0。
  • 示意圖
    CSS 過渡、變形和動畫過渡變形動畫

旋轉

  • transform:rotate(angle);
  • 說明:參數angle表示要旋轉的角度值。如果角度為正數值,則按照順時針進行旋轉,否則,按照逆時針旋轉。
  • 示意圖
    CSS 過渡、變形和動畫過渡變形動畫

動畫

@keyframes animationname {
         keyframes-selector{css-styles;}
}
           
  • animationname:表示目前動畫的名稱,它将作為引用時的唯一辨別,是以不能為空。
  • keyframes-selector:關鍵幀選擇器,即指定目前關鍵幀要應用到整個動畫過程中的位置,值可以是一個百分比、from或者to。其中,from和0%效果相同表示動畫的開始,to和100%效果相同表示動畫的結束。
  • css-styles:定義執行到目前關鍵幀時對應的動畫狀态,由CSS樣式屬性進行定義,多個屬性之間用分号分隔,不能為空。例如:
屬性值 描述
animation-name

1.屬性初始值為none,适用于所有塊元素和行内元素。

2.keyframename參數用于規定需要綁定到選擇器的keyframe的名稱,如果值為none,則表示不應用任何動畫,通常用于覆寫或者取消動畫

animation-duration 屬性初始值為0,适用于所有塊元素和行内元素。time參數是以秒(s)或者毫秒(ms)為機關的時間,預設值為0,表示沒有任何動畫效果。當值為負數時,則被視為0。
animation-timing-function 用來規定動畫的速度曲線,可以定義使用哪種方式來執行動畫效果。包括linear、ease-in、ease-out、ease-in-out、cubic-bezier(n,n,n,n)等常用屬性值。
animation-delay 參數time用于定義動畫開始前等待的時間,其機關是秒或者毫秒,預設屬性值為0。animation-delay屬性适用于所有的塊元素和行内元素。
animation-iteration-count 屬性初始值為1,适用于所有的塊元素和行内元素。如果屬性值為number,則用于定義播放動畫的次數;如果是infinite,則指定動畫循環播放。
animation-direction 屬性初始值為normal,适用于所有的塊元素和行内元素。該屬性包括兩個值,預設值normal表示動畫每次都會正常顯示。如果屬性值是"alternate",則動畫會在奇數次數(1、3、5 等等)正常播放,而在偶數次數(2、4、6 等)逆向播放。
animation animation屬性是一個簡寫屬性,用于綜合設定以上六個動畫屬性。使用animation屬性時必須指定animation-name和animation-duration屬性,否則持續的時間為0,并且永遠不會播放動畫。