CSS3過渡與動畫
阿新 • • 發佈:2022-03-11
一、過渡transition
特點:
- 過渡是兩個狀態之間的過渡,只能從一種狀態過渡到另一種狀態
- 過渡需要事件觸發,不能自動執行
綜合屬性:
可以同時控制多個屬性進行過渡,多個屬性之間用逗號隔開
transition: width 2s linear 1s,height 2s linear 1s;
拆分屬性:
-
transition-property:
- 定義過渡的屬性名(樣式名稱),比如
width
height
border
- 可以具體的樣式屬性名,也可以使用關鍵字
all
(所有屬性共用同樣的效果)
- 定義過渡的屬性名(樣式名稱),比如
-
transition-duration:
- 定義動畫持續時間 單位是 秒/s
-
transition-delay:
- 延遲執行,延遲時間,單位是秒/s
-
transition-timing-function:
- 定義動畫函式曲線
- 取值:
-
ease
: 先快後慢 -
ease-in
:越來越快 -
ease-out
: 越來越慢 -
ease-in-out
:先慢再快再慢 -
liner
:勻速直線運動 -
cubic-bezier()
:貝賽爾曲線 cubic-bezier(.17,.67,.83,.67)
-
二、動畫animation
特點:
- 動畫是多個狀態之前的改變
- 動畫可以自動執行,不需要事件觸發
- 動畫通過
@keyframes
定義關鍵幀 定義動畫
綜合屬性:
animation: name duration timing-function delay iteration-count direction fill-mode;
屬性名:動畫名 動畫持續時間 動畫函式曲線 延遲執行 定義動畫的執行次數 定義動畫執行順序 定義動畫執行後保留的狀態
拆分屬性:
- animation-name: 引用動畫的名字(定義動畫的名字)
- animation-duration: 動畫持續時間
- animation-timing-function: 動畫函式曲線
- animation-delay: 延遲執行
-
animation-iteration-count:
- 指定動畫無限執行:infinite
-
animation-direction: 定義動畫執行的順序
- 取值:alternate 預設值
- alternate-reverse 動畫先反向執行,然後再正向執行,必須結合 iteration-count 屬性一起使用才有效果;動畫至少要執行兩次
- reverse 動畫反向執行
-
animation-fill-mode: 定義動畫執行結束後保留的狀態
- 取值:forword 動畫保留終點狀態
- backwards 預設值,動畫保留起點狀態
- both 動畫將遵循forwards 和 backwards 的規則,從而再兩個方向上擴充套件動畫屬性
通過@keyframes name{}
定義動畫:
1.from-to
@keyframes name{
from{
起點狀態
}
to{
終點狀態
}
}
2.百分比
@keyframes name{
0%{
起點狀態
}
n%{
定義多箇中間狀態
}
100%{
終點狀態
}
}
三、2D與3D變換transform
含義:
transform屬性 :定義2D(平面)和3D(三維場景)變換
注意:元素的變換中心預設是元素的中心點
取值:
-
旋轉 rotate() 單位角度 deg; 取值可正可負,順時針(正直)或者逆時針(負值)
-
平移 translate(x,y) 指定x軸和y軸的平移
- px 單位:可正可負
- 百分比
- 特點:平移的元素類似於相對定位
translate(200px); x軸移動 translate(200px,200px) x軸和y軸移動
-
**縮放 scale(n) ** n 代表縮放的比例
n >1 : 放大 n 倍
n < 1 : 縮小 n 倍
- 斜切 skew(x,y) 單位:角度 deg 取值可正可負