溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

css設(shè)置簡(jiǎn)單動(dòng)畫的方法是什么

發(fā)布時(shí)間:2020-08-31 11:06:22 來源:億速云 閱讀:132 作者:小新 欄目:web開發(fā)

小編給大家分享一下css設(shè)置簡(jiǎn)單動(dòng)畫的方法是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

首先我們來了解一下css3實(shí)現(xiàn)簡(jiǎn)單動(dòng)畫需要用到的屬性:animation屬性,@keyframes “規(guī)則”。

animation屬性和@keyframes “規(guī)則”是css3新增的屬性,animation屬性可用來給動(dòng)畫設(shè)置許多的CSS樣式,例如color,background-color, height,或width?!就扑]視頻學(xué)習(xí):css3教程,了解更多css3屬性】

我們先通過@keyframes “規(guī)則”定義,再在animation屬性里調(diào)用,就可以實(shí)現(xiàn)一個(gè)簡(jiǎn)單的動(dòng)畫效果了。

如下所示:實(shí)現(xiàn)背景顏色的不斷切換

.element {
  animation: pulse 5s infinite;
}
@keyframes pulse {
  0% {
    background-color: #001F3F;
  }
  100% {
    background-color: #FF4136;
  }
}

運(yùn)行后,背景顏色會(huì)不斷的進(jìn)行變化,在#001F3F顏色值到#FF4136顏色值過渡變化,之間也會(huì)顯示一些過渡的背景色。大家可以自己動(dòng)手試試效果。

每個(gè)@keyframes規(guī)則定義了在動(dòng)畫期間中的特定時(shí)刻應(yīng)該發(fā)生的事情。例如,0%是動(dòng)畫的開頭,100%是結(jié)束。然后可以通過速記animation屬性或其八個(gè)子屬性來控制這些關(guān)鍵幀,以更好地控制應(yīng)如何操縱這些關(guān)鍵幀。

下面我們來看看animation屬性的子屬性有哪些?有什么作用?

1、animation-name:聲明@keyframes要操作的at-rule 的名稱。

2、animation-duration:動(dòng)畫完成一個(gè)循環(huán)所需的時(shí)間長(zhǎng)度。

3、animation-timing-function:建立預(yù)設(shè)的加速度曲線,如ease或linear。

4、animation-delay:正在加載的元素和動(dòng)畫序列的開始之間的時(shí)間。

5、animation-direction:設(shè)置循環(huán)后動(dòng)畫的方向。它的默認(rèn)值在每個(gè)周期重置。

6、animation-iteration-count:動(dòng)畫應(yīng)執(zhí)行的次數(shù)。

7、animation-fill-mode:設(shè)置在動(dòng)畫之前/之后應(yīng)用的值。

例如,我們可以將動(dòng)畫的最后狀態(tài)設(shè)置為保留在屏幕上,也可以將其設(shè)置為在動(dòng)畫開始之前切換回。

8、animation-play-state:暫停/播放動(dòng)畫。

然后可以像這樣使用這些子屬性:

@keyframes stretch {
  /* 在這里聲明動(dòng)畫的動(dòng)作 */
}

.element {
  animation-name: stretch;
  animation-duration: 1.5s; 
  animation-timing-function: ease-out; 
  animation-delay: 0s;
  animation-direction: alternate;
  animation-iteration-count: infinite;
  animation-fill-mode: none;
  animation-play-state: running; 
}

/*
  相同:
*/

.element {
  animation: 
    stretch
    1.5s
    ease-out
    0s
    alternate
    infinite
    none
    running;
}

以下是每個(gè)子屬性可以采用的完整列表:

css設(shè)置簡(jiǎn)單動(dòng)畫的方法是什么

多個(gè)步驟

如果動(dòng)畫具有相同的起始和結(jié)束屬性,則逗號(hào)分隔內(nèi)部的0%和100%值很有用@keyframes:

@keyframes pulse {
  0%, 100% {
    background-color: yellow;
  }
  50% {
    background-color: red;
  }
}

多個(gè)動(dòng)畫

我們可以用逗號(hào)分隔值以在選擇器上聲明多個(gè)動(dòng)畫。在下面的例子中,我們想要改變圓圈的顏色,@keyframe同時(shí)也用另一個(gè)方向從一側(cè)到另一側(cè)輕推它。

.element {
  animation: 
    pulse 3s ease infinite alternate, 
    nudge 5s linear infinite alternate;
}

在我們?cè)O(shè)置動(dòng)畫時(shí),為了讓動(dòng)畫效果更自然,實(shí)現(xiàn)更多效果,可以和css3的其他屬性連用。比如:

1、transform: translate()

2、transform: scale()

3、transform: rotate()

4、opacity

css3動(dòng)畫的兼容性

css設(shè)置簡(jiǎn)單動(dòng)畫的方法是什么

希望盡可能多地兼容舊版瀏覽器,我們需要使用一些前綴:

.element {
  -webkit-animation: KEYFRAME-NAME 5s infinite;
  -moz-animation:    KEYFRAME-NAME 5s infinite;
  -o-animation:      KEYFRAME-NAME 5s infinite;
  animation:         KEYFRAME-NAME 5s infinite;
}
@-webkit-keyframes KEYFRAME-NAME {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}
@-moz-keyframes KEYFRAME-NAME {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}
@-o-keyframes KEYFRAME-NAME {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes KEYFRAME-NAME {
  0%   { opacity: 0; }
  100% { opacity: 1; }
}

看完了這篇文章,相信你對(duì)css設(shè)置簡(jiǎn)單動(dòng)畫的方法是什么有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI