• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    CSS3動畫animation相關屬性與關鍵幀規則keyframes的詳細介紹

    來源:懂視網 責編:小采 時間:2020-11-27 18:51:37
    文檔

    CSS3動畫animation相關屬性與關鍵幀規則keyframes的詳細介紹

    CSS3動畫animation相關屬性與關鍵幀規則keyframes的詳細介紹:我昨天寫三維正方體的時候,就用到了動畫的語法 今天就來系統復習一下 過渡transition有著它的局限性 雖然簡單,但是它只能在兩個狀態之間改變 并且它需要事件的驅動才能夠進行 不能夠自己運動 所以為了解決這樣的問題 我們需要animation動畫動畫若想實現
    推薦度:
    導讀CSS3動畫animation相關屬性與關鍵幀規則keyframes的詳細介紹:我昨天寫三維正方體的時候,就用到了動畫的語法 今天就來系統復習一下 過渡transition有著它的局限性 雖然簡單,但是它只能在兩個狀態之間改變 并且它需要事件的驅動才能夠進行 不能夠自己運動 所以為了解決這樣的問題 我們需要animation動畫動畫若想實現

    我昨天寫三維正方體的時候,就用到了動畫的語法

    今天就來系統復習一下
    過渡transition有著它的局限性
    雖然簡單,但是它只能在兩個狀態之間改變
    并且它需要事件的驅動才能夠進行
    不能夠自己運動
    所以為了解決這樣的問題
    我們需要animation動畫

    動畫

    若想實現動畫效果
    僅僅有animation屬性是不夠的
    我們還需要@keyframes規則
    先來看一個例子

    p class="demo"></p>
    .demo { width: 100px; height: 100px; background-color: gold;}.demo:hover { animation: change 2s linear;}@keyframes change {
     0% { background-color: red; }
     50% { background-color: purple; }
     100% { background-color: lime; }}

    當鼠標懸浮時,元素先變紅然后過渡到紫色有過渡到綠色

    我們先來看看@keyframes 規則

    keyframes

    在@keyframes中,我們定義動畫關鍵幀
    然后animation會按照keyframes關鍵幀里我們指定的幀狀態進行過渡執行
    0% - 100% 就代表動畫的時間過渡
    規則中的0%和100%,
    可以替換成from和to關鍵字

    @keyframes xxx { from { ......
     }
     to {
     ......
     }
    }

    如果我們省略了起始幀,瀏覽器會按照它最初的樣式進行過渡

    @keyframes change {
     100% { background-color: lime; }}


    除此之外,我們還可以把相同的幀寫在一起像這樣

    @keyframes change { from,to { background-color: red; }
     50% { background-color: blue; }}

    animation

    animation是一個復合屬性,有以下子屬性

  • animation-name
    指定keyframes動畫的名稱

  • animation-duration
    指定動畫執行時間

  • animation-timing-function
    指定動畫的速度曲線,默認“ease”緩動

  • animation-delay
    指定動畫延遲時間,默認“0”無延遲

  • animation-iteration-count
    指定動畫播放的次數,默認“1”執行1次

  • animation-direction
    規定動畫執行方向,默認“normal”

  • 這個復合屬性比我們的transition要復雜一些
    前四個屬性就不多解釋了,類似于我們的transition
    忘了的同學,戳這里->傳送門

    animation-iteration-count動畫播放次數我們除了填寫數字之外
    還可以使用一個常用的關鍵字infinite無限循環

    animation-direction除了normal以外還有如下屬性值

  • reverse
    反向播放動畫

  • alternate
    輪流播放動畫

  • alternate-reverse
    反向輪流播放動畫

  • 通過一個例子來解釋

    .demo { width: 100px; height: 100px; background-color: gold;}.demo:hover { animation: change 1s 2 linear;}@keyframes change { to { width: 200px; }}

    默認normal:

    兩次測試動畫:
    100px -> 200px
    100px -> 200px


    .demo:hover { animation: change 1s 2 linear reverse; /*改*/}

    reverse:

    兩次測試動畫:
    200px -> 100px
    200px -> 100px


    .demo:hover { animation: change 1s 2 linear alternate; /*改*/}

    alternate:

    兩次測試動畫:
    100px -> 200px
    200px -> 100px


    .demo:hover { animation: change 1s 2 linear alternate-reverse; /*改*/}

    alternate-reverse:

    兩次測試動畫:
    200px -> 100px
    100px -> 200px

    animation-fill-mode

    下面我要講的兩個屬性都不是animation的子屬性
    所以不能寫在animation中

    animation-fill-mode規定對象動畫時間之外的狀態,默認“none”
    除了none以外還有如下屬性值

  • forwards
    動畫完成后,保持最后一個屬性(定義在最后一幀)

  • backwards
    在animation-delay指定時間內、動畫顯示之前,應用起始屬性(定義在第一幀)

  • both
    應用forwards和backwards兩種模式


  • forwards
    這個屬性還是蠻有用的
    還是我們上面的例子

    .demo:hover { animation: change 1s linear; /*改*/
     animation-fill-mode: forwards; /*改*/}


    我們發現1s之后,元素并沒有回到最初的100px,而是保持了我們最后一幀的200px狀態


    backwards
    理解這個屬性,我們需要先加一個延時

    .demo:hover { animation: change 1s linear 1s; /*改*/
     /*animation-fill-mode: backwards;*/ /*待增*/}@keyframes change { from { /*增*/
     width: 150px; }
     to { width: 200px; }}

    我就不配圖了
    我們發現鼠標懸浮后,1s后瞬間變為150px,然后再過渡到200px
    hover-0s -> 1s -> 2s
    100px ->瞬變150px –> 過渡到200px

    現在增加backwards

    .demo:hover { animation: change 1s linear 1s; /*改*/
     animation-fill-mode: backwards; /*增*/}

    這回我們發現鼠標懸浮的一瞬間就變為15px,然后1s后過渡到200px
    hover-0s -> 1s -> 2s
    瞬變150px ->150px –> 過渡到200px
    這就是backwards的作用,延遲前就應用第一幀動畫的樣式,然后準備過渡

    animation-play-state

    animation-play-state 指定動畫的運行或暫停。默認 “running”
    除了running還有paused
    利用這個屬性再配合js我們可以控制動畫的暫停和運行

    demo.style.animationPlayState = "paused";

    今天的動畫就先寫這么多,感覺寫了很長時間
    日后再總結動畫相關的性能問題

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    CSS3動畫animation相關屬性與關鍵幀規則keyframes的詳細介紹

    CSS3動畫animation相關屬性與關鍵幀規則keyframes的詳細介紹:我昨天寫三維正方體的時候,就用到了動畫的語法 今天就來系統復習一下 過渡transition有著它的局限性 雖然簡單,但是它只能在兩個狀態之間改變 并且它需要事件的驅動才能夠進行 不能夠自己運動 所以為了解決這樣的問題 我們需要animation動畫動畫若想實現
    推薦度:
    標簽: 規則 動畫 相關
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲国产精品福利片在线观看| 久久精品国产72国产精福利| 国产精品成人啪精品视频免费| 久久久99精品一区二区| 97久久精品国产精品青草| 亚洲精品国产成人影院| 99久久亚洲综合精品成人 | 国产亚洲精品拍拍拍拍拍| 国产国产精品人在线视| 自拍偷自拍亚洲精品被多人伦好爽| 国产精品日日摸夜夜添夜夜添1国产精品va欧美精 | 久热这里只有精品99国产6| 国产高清精品一区| 欧美激情精品久久久久| 91国内外精品自在线播放| 日韩精品区一区二区三VR| 亚洲国产欧美日韩精品一区二区三区| 国亚洲欧美日韩精品| 98香蕉草草视频在线精品看| 国产精品美女久久久| 97久久精品无码一区二区| 精品人妻码一区二区三区| 色一乱一伦一图一区二区精品 | 91亚洲国产成人久久精品网址| 国产成人精品天堂| 国产成人精品高清在线观看99| 国精品无码一区二区三区在线| 日韩精品无码一区二区中文字幕| 曰韩精品无码一区二区三区| 亚洲精品无码久久毛片| 久久免费国产精品| 婷婷久久精品国产| 亚洲А∨精品天堂在线| 婷婷成人国产精品| 伊在人亚洲香蕉精品区麻豆 | 欧美国产成人精品一区二区三区| 狠狠精品干练久久久无码中文字幕 | 3D动漫精品一区二区三区| 国产美女久久精品香蕉69| 国产伦精品免编号公布| 97精品久久天干天天天按摩|