亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

CSS3幀動畫

Nino / 1578人閱讀

摘要:在制作幀動畫的時候,一般采用雪碧圖的方式,通過切換圖片的位置,使其連續(xù)播放,從而形成動畫。使用改造之后的代碼,利用偽類進(jìn)行背景填充,然后控制該元素移動來實現(xiàn)逐幀動畫。

在制作幀動畫的時候,一般采用雪碧圖的方式,通過切換圖片的位置,使其連續(xù)播放,從而形成動畫。

雪碧圖

雪碧圖的制作可以使用compass制作,還可以使用一些小工具進(jìn)行制作,提供一個在線制作雪碧圖的網(wǎng)站。
CSS Sprites Generator

逐幀動畫

我們可以使用css3的keyframes的方式進(jìn)行逐幀動畫

.sprite{
    height:78px;
    width:28px;
    background:url(images/people.png) no-repeat;
    background-size:112px 78px;
    animation:people .5s steps(1, start) infinite;
}
@keyframes people{
    0%{background-position: 0 0 }
    25%{ background-position:-28px 0;}
    75%{ background-position: -56px 0 }
    100%{ background-position:-84px 0;}
}

如果animation沒有設(shè)置steps(1,start/end),動畫幀之間將采用默認(rèn)的過渡方式,此時觀察到的動畫會變成滑動的方式,這不是我們想要的效果。
為此,我們需要使用steps函數(shù)。

steps
steps(number_of_steps, direction)

steps timing function接受兩個參數(shù),steps(n,start/end),其中n為正整數(shù),表示分為幾步執(zhí)行完,后一個參數(shù)是可選的,默認(rèn)為end。

start表示的是一個左連續(xù)函數(shù),在每個間隔的起點就發(fā)生階躍變化,直到該間隔時間結(jié)束

end表示的是一個右連續(xù)函數(shù),在每個間隔的終點才發(fā)生階躍變化

關(guān)于steps()更多的資料可以查看 How to Use steps() in CSS Animations
對于人物走動的動畫,由于是一個不斷循環(huán)的過程,所以設(shè)置為start或者end都是可行的。

background-position與translate3d方式的比較

background-position會引起重繪,而translate3d不會。(對于會引起回流和重繪的屬性可以查看這個網(wǎng)站 csstriggers,關(guān)于這個網(wǎng)站的介紹可以查看 這個回答)
同時translate3d會開啟GPU渲染加速,性能更好。
綜上所述,translate3d方式較為優(yōu)越。

使用translate3d改造之后的代碼,利用after偽類進(jìn)行背景填充,然后控制該元素移動來實現(xiàn)逐幀動畫。

.sprite{
    overflow:hidden;//設(shè)置超出隱藏
    height:78px;
    width:28px;
}
.sprite:after{
    content:""; //加上content,內(nèi)容才會顯示
    display:block;
    width:112px ; 
    height:78px;
    background:url(images/people.png) no-repeat;
    background-size:112px 78px;
    animation:people .5s steps(1, start) infinite;
}
@keyframes people{
    0%{transform: translate3d(0,0,0)}
    25%{transform: translate3d(-28px,0,0)}
    75%{transform: translate3d(-56px,0,0)}
    100%{transform: translate3d(-84px,0,0)}
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/116786.html

相關(guān)文章

  • CSS3動畫之逐動畫

    摘要:什么是逐幀動畫要了解逐幀動畫,首先要明確什么是逐幀動畫。簡而言之,實現(xiàn)逐幀動畫需要兩個條件相關(guān)聯(lián)的不同圖像,即動畫幀連續(xù)播放。因此在觸屏頁面中逐幀動畫使用廣泛,下文將對其進(jìn)行詳細(xì)介紹。因此,逐幀動畫也被稱為精靈動畫。 什么是逐幀動畫要了解 CSS3 逐幀動畫,首先要明確什么是逐幀動畫。 看一下維基百科中的定義: 定格動畫,又名逐幀動畫,是一種動畫技術(shù),其原理即將每幀不同的圖像連續(xù)播放,...

    RancherLabs 評論0 收藏0
  • css3中的變形(transform)、過渡(transition)、動畫(animation)屬性

    摘要:中制作動畫的幾個屬性中的變形過渡動畫。默認(rèn)值為,為時,表示變化是瞬時的,看不到過渡效果。實現(xiàn)動畫效果主要由兩部分組成通過類似動畫中的幀來聲明一個動畫在屬性中調(diào)用關(guān)鍵幀聲明的動畫。 css3中制作動畫的幾個屬性:css3中的變形(transform)、過渡(transition)、動畫(animation)。 一、 CSS3變形(transform) 語法: transform : no...

    waruqi 評論0 收藏0
  • css3 動畫(三)animation 簡介

    摘要:默認(rèn),只執(zhí)行一次動畫動畫名稱,該名稱為動畫關(guān)鍵幀的名稱。默認(rèn)如何理解表示的是關(guān)鍵幀的名稱,那么如何定義關(guān)鍵幀呢使用。語法名稱關(guān)鍵幀樣式或總結(jié)其實也并不復(fù)雜,其有個子屬性。下一篇動畫三源碼解析通過閱讀動畫庫的源碼,來提高對中屬性的認(rèn)識 前言 上一篇中,總結(jié)了一下 transition 以及 cubic-bezier()。本篇中,將介紹 css3 動畫中的更為靈活的動畫屬性:animati...

    itvincent 評論0 收藏0
  • 入門css3動畫

    摘要:入門動畫為了讓頁面體驗更為流暢,我們在更多的時候都會采用一些動畫給頁面流程增加一些耦合性動畫分為兩類過渡動畫從一個狀態(tài)變?yōu)榱硪粋€狀態(tài)一個寬高都為,鼠標(biāo)移上后變?yōu)閷捀吒鬟@時候我們就可以用到過渡動畫關(guān)鍵幀動畫一個動畫定義多個關(guān)鍵幀,實現(xiàn)更為復(fù)雜 入門css3動畫 為了讓頁面體驗更為流暢,我們在更多的時候都會采用一些動畫給頁面流程增加一些耦合性 css3動畫分為兩類 1. 過渡動畫trans...

    BDEEFE 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<