溫馨提示×

溫馨提示×

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

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

css3中如何定義動畫

發(fā)布時間:2021-04-07 11:16:03 來源:億速云 閱讀:234 作者:小新 欄目:web開發(fā)

小編給大家分享一下css3中如何定義動畫,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

使用css3中的“@keyframes”規(guī)則來定義動畫?!癅keyframes”規(guī)則用于指定動畫規(guī)則,定義一個CSS動畫的一個周期的行為,可以創(chuàng)建簡單的動畫;可通過沿動畫序列建立關(guān)鍵幀來指定動畫序列循環(huán)期間的中間步驟。

@keyframes是CSS3的一種規(guī)則,可以用來定義CSS動畫的一個周期的行為,可以創(chuàng)建簡單的動畫。

動畫與轉(zhuǎn)換類似,因為它們都是隨時間改變CSS屬性的表示值。主要區(qū)別在于,當(dāng)屬性值更改時(例如,當(dāng)懸停時屬性值發(fā)生改變時),轉(zhuǎn)換會隱式的觸發(fā),但在應(yīng)用動畫屬性時會顯式執(zhí)行動畫。因此,動畫需要顯示動畫屬性的顯式值。這些值是在@keyframes規(guī)則中指定的動畫關(guān)鍵幀定義的。因此,@keyframes規(guī)則里是由一組封裝的CSS樣式規(guī)則組成的,這些規(guī)則描述了屬性值如何隨時間變化。

然后,使用不同的CSS animation(動畫)屬性,可以控制動畫的許多不同方面,包括動畫迭代的次數(shù),是否在開始和結(jié)束值之間交替,以及動畫是否應(yīng)該運(yùn)行或暫停。動畫也可以延遲其開始時間。

@keyframe規(guī)則由關(guān)鍵字“@keyframe”組成,后面接著是給出動畫名稱的標(biāo)識符(將使用animation-name引用),隨后是通過一組樣式規(guī)則(用大括號分隔)。然后,通過使用標(biāo)識符作為animation-name屬性的值,將動畫應(yīng)用于元素。

語法:

@keyframes animation-name {keyframes-selector {css-styles;}}
  • animation-name:這是必需的,它定義動畫名稱。

  • keyframes-selector:定義動畫的百分比,它介于0%到100%之間。一個動畫可以包含許多選擇器。

/* 定義動畫n */
@keyframes your-animation-name {
    /* style rules */
}
/* 將其應(yīng)用于元素 */
.element {
    animation-name: your-animation-name;
    /* 或者使用動畫速記屬性 */
    animation: your-animation-name 1s ...
}

在大括號內(nèi),定義關(guān)鍵幀或路徑點(diǎn),這些關(guān)鍵幀或路徑點(diǎn)在動畫期間的某些點(diǎn)上指定要設(shè)置動畫的屬性的值。這允許您在動畫序列中控制中間步驟。例如,一個簡單的動畫@keyframe可能如下所示:

@keyframes change-bg-color {
    0% {
        background-color: red;
    }
    100% {
        background-color: blue;
    }
}

0%”和“100%”是關(guān)鍵幀選擇器,每個都定義了關(guān)鍵幀規(guī)則。關(guān)鍵幀規(guī)則的關(guān)鍵幀聲明塊由屬性和值組成。

還可以使用選擇器關(guān)鍵字from和to,而不是分別使用0%和100%,因為它們是等價的。

@keyframes change-bg-color {
    from {
        background-color: red;
    }
    to {
        background-color: blue;
    }
}

關(guān)鍵幀選擇器由一個或多個逗號分隔的百分比值或from和to關(guān)鍵字組成。注意,百分比單位說明符必須用于百分比值。因此,' 0 '是一個無效的關(guān)鍵幀選擇器。

注意:為了獲得瀏覽器的最佳支持,請始終指定0%和100%選擇器。

css @keyframes的使用示例:

1、定義動畫發(fā)生的空間

HTML代碼:

<div class="container">
  <div class="element"></div>
</div>

2、使用@keyframes規(guī)則創(chuàng)建簡單動畫

css代碼

body {
  background-color: #fff;
  color: #555;
  font-size: 1.1em;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
.container {
  margin: 50px auto;
  min-width: 320px;
  max-width: 500px;
}

.element {
  margin: 0 auto;
  width: 100px;
  height: 100px;
  background-color: #0099cc;
  border-radius: 50%;
  position: relative;
  top: 0;
  -webkit-animation: bounce 2s infinite;
  animation: bounce 2s infinite;
}

@-webkit-keyframes bounce {
  from {
    top: 100px;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }
  25% {
    top: 50px;
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  50% {
    top: 150px;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }
  75% {
    top: 75px;
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  to {
    top: 100px;
  }
}

@keyframes bounce {
  from {
    top: 100px;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }
  25% {
    top: 50px;
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  50% {
    top: 150px;
    -webkit-animation-timing-function: ease-out;
    animation-timing-function: ease-out;
  }
  75% {
    top: 75px;
    -webkit-animation-timing-function: ease-in;
    animation-timing-function: ease-in;
  }
  to {
    top: 100px;
  }
}

3、運(yùn)行效果

css3中如何定義動畫

以上是“css3中如何定義動畫”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

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

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

AI