14.CSS | steps 的內(nèi)心探索之路

“我要一步一步往前跳融撞,在最遠(yuǎn)方乘著web往前飛;
小小的天……我有屬于我的天”
——題記粗蔚,改編源自《蝸懦①耍》

正文

當(dāng)我們給元素做動(dòng)畫的時(shí)候,可能會(huì)用到steps鹏控,把多個(gè)圖片拼合成一張雪碧圖致扯,改變background-position進(jìn)行動(dòng)畫,簡(jiǎn)便而又強(qiáng)大的屬性当辐。如同變形金剛抖僵,“卡卡卡”,而有時(shí)又被它搞得一愣一愣的缘揪,咦耍群,咋沒(méi)看到最后一張圖义桂。用歸用,不由疑惑steps到底是個(gè)什么鬼蹈垢?索性來(lái)了解一下慷吊。

語(yǔ)法

steps(number, direction)
//number指間隔數(shù),必須為正整數(shù)曹抬,必選
//directoin接受start和end值溉瓶,指定在每個(gè)間隔的起點(diǎn)或是終點(diǎn)發(fā)生階躍變化,默認(rèn)end沐祷,可選

steps作為timing-function的一個(gè)屬性嚷闭,將操作的區(qū)域劃分為相同等分的間隔攒岛,也就是說(shuō)每步分成n段赖临,注意,這里是步灾锯,不是共兢榨。比如說(shuō)0,50%顺饮,100%吵聪,則會(huì)050%分成n步,50%100%分成n步兼雄。上2張W3C上對(duì)于steps圖文并茂的介紹:

w3c關(guān)于steps的介紹文字
w3c關(guān)于steps的介紹圖例

可能我們看了還是不太清楚吟逝,直接上例子:
比如說(shuō)小鳥啄地的3幀動(dòng)畫,用steps實(shí)現(xiàn)赦肋,改變background-position切換块攒。


原圖.png

看代碼:

代碼

steps(2, start)效果如下,僅在鳥2鳥3中切換(鳥1咋不見(jiàn)了):

鳥2.png
鳥3.png

而steps(2,end)或者steps(2)佃乘,僅在鳥1鳥2中切換(鳥3咋不見(jiàn)了):

鳥1
鳥2.png

(代碼放在了codepen上囱井,可遠(yuǎn)觀可褻玩,看看是不是我說(shuō)的這個(gè)事兒趣避。)

為啥庞呕,我們以w3c的線圖來(lái)解讀。

steps(2, start)

因?yàn)橹挥幸粋€(gè)100%程帕,steps 的2將該動(dòng)畫分成2步住练,當(dāng)選擇start時(shí),也就是剛開始的時(shí)候0s一跳跳到1愁拭,相當(dāng)于作為一個(gè)躍點(diǎn)澎羞,完成階躍,這一切來(lái)的那么快敛苇,以至于我看不見(jiàn)妆绞,所以我們看到的就是鳥2鳥3不斷切換顺呕。

接下來(lái)切換end:

steps(2, end)

當(dāng)躍點(diǎn)為end時(shí),則動(dòng)畫在終點(diǎn)發(fā)生階躍括饶,也就是說(shuō)最后一步的最后一點(diǎn)株茶,這一瞬間猝不及防,致使我啥也都看不見(jiàn)图焰。steps的默認(rèn)狀態(tài)是end启盛。這也就導(dǎo)致平時(shí)我們可能會(huì)產(chǎn)生這樣的錯(cuò)覺(jué):它不會(huì)運(yùn)行到最后一張,事實(shí)上是有技羔,但階躍的我壓根看不到僵闯。但是,我們可以利用forwards來(lái)查看藤滥,發(fā)現(xiàn)它最后定的圖是鳥3鳖粟,如果infinite無(wú)限循環(huán),鳥3的毛還是看不到的拙绊。

解決方法
方法1:在多張圖片拼合的成果圖(雪碧圖)的末尾或開頭處再加一張一樣大小的空白圖向图,如此便解決了。有時(shí)候可能加跟第一張或第一張一樣的圖标沪,具體問(wèn)題具體分析~
方法2: 圖還是原始圖榄攀,改變動(dòng)畫keyframes,需要多加一步50%金句。

@-webkit-keyframes stepsA {
    50% { background-position: 0 100%; }

    to { background-position: 0 0; }
    /*to { background-position: 0 100%; }*/
}

猜想
step-start檩赢, start-end顯示的是啥?
step-start = start(1, start)
step-end = start(1, end)

回顧

可以動(dòng)手試一試~答案违寞,別戳我

參考文章:
https://www.w3.org/TR/2012/WD-css3-transitions-20120403/#transition-timing-function-property
https://developer.mozilla.org/zh-CN/docs/Web/CSS/timing-function
https://idiotwu.me/understanding-css3-timing-function-steps/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末贞瞒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子坞靶,更是在濱河造成了極大的恐慌憔狞,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彰阴,死亡現(xiàn)場(chǎng)離奇詭異瘾敢,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)尿这,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門簇抵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人射众,你說(shuō)我怎么就攤上這事碟摆。” “怎么了叨橱?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵典蜕,是天一觀的道長(zhǎng)断盛。 經(jīng)常有香客問(wèn)我,道長(zhǎng)愉舔,這世上最難降的妖魔是什么钢猛? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮轩缤,結(jié)果婚禮上命迈,老公的妹妹穿的比我還像新娘。我一直安慰自己火的,他們只是感情好壶愤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著馏鹤,像睡著了一般征椒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上假瞬,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天陕靠,我揣著相機(jī)與錄音迂尝,去河邊找鬼脱茉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛垄开,可吹牛的內(nèi)容都是我干的琴许。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼溉躲,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼榜田!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起锻梳,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤箭券,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后疑枯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辩块,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年荆永,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了废亭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡具钥,死狀恐怖豆村,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情骂删,我是刑警寧澤掌动,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布四啰,位于F島的核電站,受9級(jí)特大地震影響粗恢,放射性物質(zhì)發(fā)生泄漏拟逮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一适滓、第九天 我趴在偏房一處隱蔽的房頂上張望敦迄。 院中可真熱鬧,春花似錦凭迹、人聲如沸罚屋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)脾猛。三九已至,卻和暖如春鱼鸠,著一層夾襖步出監(jiān)牢的瞬間猛拴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工蚀狰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留愉昆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓麻蹋,卻偏偏與公主長(zhǎng)得像跛溉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扮授,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容