小編給大家分享一下css3中如何定義動畫,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
使用css3中的“@keyframes”規則來定義動畫?!癅keyframes”規則用于指定動畫規則,定義一個CSS動畫的一個周期的行為,可以創建簡單的動畫;可通過沿動畫序列建立關鍵幀來指定動畫序列循環期間的中間步驟。
@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 '是一個無效的關鍵幀選擇器。
注意:為了獲得瀏覽器的最佳支持,請始終指定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: '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、運行效果

以上是“css3中如何定義動畫”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。