1. 程式人生 > 其它 >動畫與濾鏡

動畫與濾鏡

動畫與濾鏡

動畫

1.通過@keyframs定義動畫。

2.在指定元素中,通過animation屬性來呼叫動畫。

1.定義動畫

格式:

​ @keyframes 動畫名 {

​ from{

​ /* 初始幀 */

​ }

​ to{

​ /* 結束幀 */

​ }

​ }

  @keyframes move {
            0%{
                /* 初始幀 */
                transform: translate(0px,0px);
            }
              @keyframes move {
            0%{
                /* 初始幀 */
transform: translate(0px,0px); } }

【注】動畫名不要起關鍵字,最好見名知意。

2.動畫的呼叫:

通過animation屬性來呼叫動畫。

animatio-name:動畫名稱

animation-duration 執行一次動畫的完成時間。

animation-iteration-count: 動畫的執行次數 infinite 表示無數次。

animation-delay: 動畫延遲執行的時間。

animation-fill-mode:

forwards:在動畫結束後,盒子保持結束幀狀態。

backwards 在動畫開始時,包含延遲時間,讓盒子保持初始幀狀態

both backwards forwards都生效

none(預設值)

animation-direction: 動畫的執行方式

alternate:交替執行。

normal 正常(預設)

reverse 反向 從結束幀開始到初始幀結束。

【注】alternate 反向也會算一次執行時間。

animation-timing-function:linear;

linear 勻速

ease-in 加速

ease-out 減速

ease-in-out 先加速後減速

animation-play-state 動畫執行狀態

paused:暫停

running 執行

【注】動畫屬性要有中間狀態,一般是數值型。

濾鏡

/* 模糊 0-1 /
filter: blur(2px)

img {
    -webkit-filter: blur(5px); /* Chrome, Safari, Opera */
    filter: blur(5px);
}

/* 陰影 /
filter: drop-shadow(5px 5px 5px #aaa)

img {
    -webkit-filter: drop-shadow(8px 8px 10px red); /* Chrome, Safari, Opera */
    filter: drop-shadow(8px 8px 10px red);
}

/* 對比度 /
filter: contrast(2)

img {
    -webkit-filter: contrast(200%); /* Chrome, Safari, Opera */
    filter: contrast(200%);
}

/* 色相翻轉 deg /
filter: hue-rotate(90deg)

img {
    -webkit-filter: invert(100%); /* Chrome, Safari, Opera */
    filter: invert(100%);
}

/* 褐色 0-1 /
filter: sepia(60%)

img {
    -webkit-filter: sepia(100%); /* Chrome, Safari, Opera */
    filter: sepia(100%);
}

/* 飽和度 0-1 /
filter: saturate(60%)

img {
    -webkit-filter: saturate(800%); /* Chrome, Safari, Opera */
    filter: saturate(800%);
}

/* 亮度 0-1 /
filter: brightness(1)

img {
    -webkit-filter: brightness(200%); /* Chrome, Safari, Opera */
    filter: brightness(200%);
}

/* 反色 /
filter: invert(1)

img {
    -webkit-filter: invert(100%); /* Chrome, Safari, Opera */
    filter: invert(100%);
}

/* 灰度 /
filter: grayscale(50%)

img {
    -webkit-filter: grayscale(50%); /* Chrome, Safari, Opera */
    filter: grayscale(50%);
}

/* 透明度 */
filter: opacity(25%)

img {
    -webkit-filter: opacity(30%); /* Chrome, Safari, Opera */
    filter: opacity(30%);
}

使用多個濾鏡,每個濾鏡使用空間分隔。

**注意:**依次是非常重要的(例如使用grayscale()後再使用sepia()將產生一個完整的灰度圖片)。