1. 程式人生 > >CSS 動畫 實現點的動態縮放閃爍

CSS 動畫 實現點的動態縮放閃爍

實現動畫效果,要用到css的 animation 屬性,具體寫法為:

animation:a1, a2 , a3 ;

a1為通過@keyframes 規則建立的動畫名稱,可自己定義

a2 為動畫時常 ,例如:1s   2s   可自行規定

a3 為css自帶的動畫效果,有如下幾個:

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 之間的數值。

瞭解這些以後,開始模仿一個點的閃爍動畫:

在css檔案裡定義 .dynamic_plot  類:

-webkit-animation     -moz-animation     來相容瀏覽器

設定  -count  來規定播放次數,這裡為無限播放

.dynamic_plot {
    width: 35px;
    height: 35px;
    -webkit-border-radius: 50%;
    -moz-border-radius: 50%;
    border-radius: 50%;
    opacity: 0;  /*透明*/

    animation: warn 3s ease-in;
    -webkit-animation: warn 3s ease-in;
    -moz-animation: warn 3s ease-in;

/*規定動畫無限次播放*/
    -webkit-animation-iteration-count: infinite;
    -moz-animation-iteration-count: infinite;
    animation-iteration-count: infinite;
    
    background-color: rgba(255,185,15,1);
}

可以看到,在aniamtion 裡,呼叫了warn方法,就要在@keyframes  裡定義warn方法:

@keyframes warn {
   
}

在warn方法裡

用百分比來規定變化發生的時間,或用關鍵詞 "from" 和 "to",等同於 0% 和 100%。

0% 是動畫的開始,100% 是動畫的完成,建議使用百分比,會更加詳細:

動態效果:

@keyframes warn {
    100% {
        transform: scale(1);
        -webkit-transform: scale(0.3);
        opacity: 1;
    }

    75% {
        transform: scale(1);
        -webkit-transform: scale(0.3);
        opacity: 0.8;
    }

    50% {
        transform: scale(1);
        -webkit-transform: scale(0.5);
        opacity: 0.6;
    }

    25% {
        transform: scale(1);
        -webkit-transform: scale(0.8);
        opacity: 0.4;
    }

    0% {
        transform: scale(1);
        -webkit-transform: scale(1);
        opacity: 0.2;
    }
}

這裡添加了五次,可根據需求更改,效果為由大到小縮成一個點,點的大小在之前.dynamic_plot類裡定義, 通過修改warn裡各個百分比的效果,改變閃爍效果。