首頁  >  文章  >  web前端  >  使用css3中的什麼規則來定義動畫

使用css3中的什麼規則來定義動畫

青灯夜游
青灯夜游原創
2021-04-06 17:42:573498瀏覽

使用css3中的「@keyframes」規則來定義動畫。 「@keyframes」規則用於指定動畫規則,定義一個CSS動畫的一個週期的行為,可以創建簡單的動畫;可透過沿著動畫序列建立關鍵影格來指定動畫序列循環期間的中間步驟。

使用css3中的什麼規則來定義動畫

本教學操作環境:windows7系統、CSS3&&HTML5版、Dell G3電腦。

@keyframes是CSS3的一種規則,可以用來定義CSS動畫的一個週期的行為,可以創造簡單的動畫。

動畫與轉換類似,因為它們都是隨時間改變CSS屬性的表示值。主要差異在於,當屬性值變更時(例如,當懸停時屬性值發生變化時),轉換會隱式的觸發,但在套用動畫屬性時會明確執行動畫。因此,動畫需要顯示動畫屬性的明確值。這些值是在@keyframes規則中指定的動畫關鍵影格定義的。因此,@keyframes規則裡是由一組封裝的CSS樣式規則組成的,這些規則描述了屬性值如何隨時間變化。

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

@keyframe規則由關鍵字「@keyframe」組成,後面接著是給出動畫名稱的識別碼(將使用animation-name引用),接著是透過一組樣式規則(以大括號分隔) 。然後,透過使用標識符作為animation-name屬性的值,將動畫應用於元素。

語法:

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

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

/* 定义动画n */
@keyframes your-animation-name {
    /* style rules */
}
/* 将其应用于元素 */
.element {
    animation-name: your-animation-name;
    /* 或者使用动画速记属性 */
    animation: your-animation-name 1s ...
}

在大括號內,定義關鍵影格或路徑點,這些關鍵影格或路徑點在動畫期間的某些點上指定要設定動畫的屬性的值。這允許您在動畫序列中控制中間步驟。例如,一個簡單的動畫@keyframe可能如下所示:

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

0%」和「100%」是關鍵影格選擇器,每個都定義了關鍵影格規則。關鍵影格規則的關鍵影格聲明區塊由屬性和值組成。

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

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

關鍵幀選擇器由一個或多個逗號分隔的百分比值或from和to關鍵字組成。請注意,百分比單位說明符必須用於百分比值。因此,' 0 '是一個無效的關鍵影格選擇器。(學習影片分享:css影片教學

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

css @keyframes的使用範例:

1、定義動畫發生的空間

HTML程式碼:

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

#2、使用@keyframes規則建立簡單動畫

css程式碼

body {
  background-color: #fff;
  color: #555;
  font-size: 1.1em;
  font-family: &#39;Helvetica Neue&#39;, 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、運行效果

使用css3中的什麼規則來定義動畫

#更多程式相關知識,請造訪:程式設計影片!!

以上是使用css3中的什麼規則來定義動畫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn