摘要:動(dòng)畫(huà)首先要明白動(dòng)畫(huà)是一幀一幀的,由多個(gè)幀拼起來(lái)的動(dòng)畫(huà)此為動(dòng)畫(huà)樣式中的關(guān)鍵幀,用關(guān)鍵幀來(lái)控制動(dòng)畫(huà)中的關(guān)鍵樣式。將會(huì)遵守倒序還是正序的停留正序倒序總寫(xiě)按照上方順序即可如下關(guān)鍵幀動(dòng)畫(huà)演示效果
css動(dòng)畫(huà)
首先要明白動(dòng)畫(huà)是一幀一幀的,由多個(gè)幀拼起來(lái)的動(dòng)畫(huà)
此為動(dòng)畫(huà)樣式中的關(guān)鍵幀,用關(guān)鍵幀來(lái)控制css動(dòng)畫(huà)中的關(guān)鍵樣式。相比較過(guò)渡更加的容易空值中間的部分
其指示了一個(gè)過(guò)程到另一個(gè)過(guò)程的過(guò)程
關(guān)鍵幀還具有名字,在應(yīng)用的時(shí)候通過(guò)名字將其綁定。
如果關(guān)鍵幀重復(fù)定義,則根據(jù)最后一次定義為準(zhǔn)舉個(gè)栗子關(guān)鍵幀中的important會(huì)被略過(guò)
定義一個(gè)關(guān)鍵幀
@keyframes myFrames { form { background:#a7e5c6; width:100px; } to { width:90%; background:#c6c2a3; } }
樣式如下
這樣就完成一次動(dòng)畫(huà)操作
分開(kāi)定義也可以進(jìn)行分開(kāi)定義
按照百分號(hào)進(jìn)行定義,結(jié)果如下
關(guān)鍵幀如下
@keyframes myFrames { 0% { width:200px; background:#827e64; } 20% { width:400px; background:#86bece; } 50% { height:600px; background:#af92aa; } 90% { width:300px; height:400px; background:#698771; } }
效果如下
animation 同樣是一個(gè)簡(jiǎn)寫(xiě)屬性,相比較js寫(xiě)動(dòng)畫(huà)來(lái)說(shuō),css動(dòng)畫(huà)已經(jīng)灰常簡(jiǎn)單了。
大概看了一點(diǎn)純js動(dòng)畫(huà),js動(dòng)畫(huà)核心在于對(duì)css樣式的更改,外加一個(gè)重復(fù)時(shí)間對(duì)css不斷的累加得到動(dòng)畫(huà)效果
下面依次說(shuō)明
animation-name和關(guān)鍵幀進(jìn)行綁定
必須和關(guān)鍵幀的名字相同(廢話)
指定一個(gè)動(dòng)畫(huà)的周期
負(fù)值的動(dòng)畫(huà)無(wú)效舉一個(gè)栗子
div { width:300px; height:400px; background:#698771; margin:auto; animation-name: myFrames; animation-duration:.9s; } /*關(guān)鍵幀*/ @keyframes myFrames { 0% { width:200px; background:#827e64; } 20% { width:400px; background:#86bece; } 50% { height:600px; background:#af92aa; } 90% { width:300px; height:400px; background:#698771; } }
動(dòng)畫(huà)效果如下
定義一個(gè)動(dòng)畫(huà)的過(guò)程,類(lèi)似于過(guò)渡的函數(shù)
同樣的,有貝塞爾曲線等等
不在闡述
谷歌瀏覽器的調(diào)試工具具有該方法,可以直接使用調(diào)試工具繪制貝塞爾曲線
定義動(dòng)畫(huà)的延遲
css如下
* { margin:0; padding:0; } body { position:relative; } div { width:400px; height:400px; position: absolute; left:0; top:0; bottom:0; margin:auto; background:#698771; border-radius:1000px; animation-name: myFrames; animation-duration:5s; animation-timing-function:cubic-bezier(0.785, 0.135, 0.15, 0.86); animation-delay:.9s; } div div { width:40px; height:40px; position:absolute; left:0; right:0; top:0; bottom:0; margin:auto; background:#e8e3da; animation-name:myCenter; } /*關(guān)鍵幀*/ @keyframes myFrames { from { left:0; } to { left:70%; } } @keyframes myCenter { from { left:0; } to { left:0; } }
html如下
css動(dòng)畫(huà)
動(dòng)畫(huà)延遲了0.9秒
animation-iteration-count定義動(dòng)畫(huà)的迭代次數(shù)infinite 為永遠(yuǎn)重復(fù)
數(shù)值為number
animation-iteration-count:3;
動(dòng)畫(huà)重復(fù)播放3次。
animation-iteration-count:infinite;
動(dòng)畫(huà)永遠(yuǎn)重復(fù)播放
animation-direction定義是否向前,向后,是否交替來(lái)回
如果想要重復(fù)的多次播放,必須有animation-iteration-count的值為infinity否則不會(huì)出現(xiàn)重復(fù)播放normal
為一個(gè)每次重復(fù)重新的位置開(kāi)始播放(每次都將重置為新?tīng)顟B(tài),開(kāi)始執(zhí)行)
倒序播放
奇數(shù)正向播放
偶數(shù)倒序播放
即來(lái)回
奇數(shù)倒序播放
偶數(shù)正向播放
即倒來(lái)回
ps 動(dòng)畫(huà)具有繼承的屬性animation-fill-mode forwards
將會(huì)保留最后一個(gè)關(guān)鍵幀,讓其停留。
css
/*animation-iteration-count:infinite;*/ animation-direction:alternate; animation-fill-mode:forwards;backwards
將會(huì)應(yīng)用第一個(gè)動(dòng)畫(huà)值
和none的區(qū)別在于none使用默認(rèn)的css樣式,backwards將會(huì)使用動(dòng)畫(huà)的第一幀
/*animation-iteration-count:infinite;*/ animation-direction:alternate; animation-fill-mode:backwards;
ps 加上注釋的原因是因?yàn)槿绻患訉?huì)重復(fù)播放。both
將會(huì)遵守倒序還是正序的停留
正序/*animation-iteration-count:infinite;*/ animation-direction:normal; animation-fill-mode:both;倒序
/*animation-iteration-count:infinite;*/ animation-direction:reverse; animation-fill-mode:both;總寫(xiě)
按照上方順序即可
css 如下
* { margin:0; padding:0; } body { position:relative; } div { width:400px; height:400px; position: absolute; left:0; top:0; bottom:0; margin:auto; background:#698771; border-radius:1000px; animation:myFrames 5s cubic-bezier(0.785, 0.135, 0.15, 0.86) .5s infinite alternate both; } div div { width:40px; height:40px; position:absolute; left:0; right:0; top:0; bottom:0; margin:auto; background:#e8e3da; animation-name:myCenter; } /*關(guān)鍵幀*/ @keyframes myFrames { from { left:0; } to { left:70%; } } @keyframes myCenter { from { left:0; } to { left:0; } }
css動(dòng)畫(huà)
演示效果 https://melovemingming.gitee....
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/113688.html
摘要:任天堂的最新游戲的控制臺(tái)帶有一個(gè)輝煌的動(dòng)畫(huà),他所有的商業(yè)廣告和這個(gè)示例都由創(chuàng)建。使用重新構(gòu)建任天堂開(kāi)關(guān),同時(shí)使用動(dòng)畫(huà)化整個(gè)事物。 現(xiàn)在構(gòu)建一個(gè)HTML和CSS的動(dòng)畫(huà)logo比以前容易多了,配合更新的JavaScript庫(kù)可以進(jìn)一步推動(dòng)網(wǎng)絡(luò)動(dòng)畫(huà)的發(fā)展。 看看這個(gè)畫(huà)廊的10個(gè)令人難以置信的自定義動(dòng)畫(huà)logo,它們展示的是一些未知的實(shí)體或者世界知名品牌。 1、Flowers SVG Web...
摘要:貝塞爾曲線貝塞爾曲線是應(yīng)用于二維圖形應(yīng)用程序的數(shù)學(xué)曲線。通過(guò)調(diào)整控制點(diǎn),貝塞爾曲線的形狀會(huì)發(fā)生變化。讓我們看看貝塞爾曲線的工作原理。貝塞爾曲線需要四個(gè)值,或者更準(zhǔn)確地說(shuō)它需要兩對(duì)數(shù)字。每對(duì)描述立方貝塞爾曲線控制點(diǎn)的和坐標(biāo)。 這是專(zhuān)門(mén)探索 JavaScript 及其所構(gòu)建的組件的系列文章的第 13 篇。 如果你錯(cuò)過(guò)了前面的章節(jié),可以在這里找到它們: JavaScript 是如何工作的:...
摘要:關(guān)鍵幀是用來(lái)通知瀏覽器在規(guī)定的時(shí)間點(diǎn)上應(yīng)有的屬性值然后填充空白。每一對(duì)數(shù)值內(nèi)包含表示三次貝塞爾曲線控制點(diǎn)的和坐標(biāo)。即使每個(gè)控制點(diǎn)的和值的微小差異都會(huì)輸出完全不同的貝塞爾曲線。 原文請(qǐng)查閱這里,本文采用知識(shí)共享署名 4.0 國(guó)際許可協(xié)議共享,BY Troland。 本系列持續(xù)更新中,Github 地址請(qǐng)查閱這里。 這是 JavaScript 工作原理的第十三章。 概述 正如你所知,動(dòng)畫(huà)在...
摘要:關(guān)鍵幀是用來(lái)通知瀏覽器在規(guī)定的時(shí)間點(diǎn)上應(yīng)有的屬性值然后填充空白。每一對(duì)數(shù)值內(nèi)包含表示三次貝塞爾曲線控制點(diǎn)的和坐標(biāo)。即使每個(gè)控制點(diǎn)的和值的微小差異都會(huì)輸出完全不同的貝塞爾曲線。 原文請(qǐng)查閱這里,本文采用知識(shí)共享署名 4.0 國(guó)際許可協(xié)議共享,BY Troland。 本系列持續(xù)更新中,Github 地址請(qǐng)查閱這里。 這是 JavaScript 工作原理的第十三章。 概述 正如你所知,動(dòng)畫(huà)在...
閱讀 2097·2021-09-30 09:47
閱讀 771·2021-09-22 15:43
閱讀 2047·2019-08-30 15:52
閱讀 2494·2019-08-30 15:52
閱讀 2648·2019-08-30 15:44
閱讀 983·2019-08-30 11:10
閱讀 3428·2019-08-29 16:21
閱讀 3359·2019-08-29 12:19