css3 動(dòng)畫(huà)筆記

作者:blue(又名一書(shū)and一世界) 我的github
**用途: **當(dāng)作字典來(lái)查

some websites to learn css3Animate

transition

  • grammar: tansition: property duration timing-function delay;
  • detail
    • transition-property:要過(guò)渡的css屬性
    • transition-duration:要過(guò)渡持續(xù)多少秒或者毫秒
    • transition-timing-function:速度效果的速度曲線
    • transition-delay:延遲多少秒執(zhí)行過(guò)渡
  • notice
    • 默認(rèn)值:transition:all 0 ease 0
    • 如果transition-duration屬性沒(méi)有被設(shè)置土陪,則默認(rèn)為0臣嚣,即不會(huì)產(chǎn)生過(guò)渡效果
    • tanstion-timing-function: linear/勻速/ | ease-in /加速/ | ease-out /減速/ | ease /逐漸放慢/ | cubic-bezier /函數(shù),自定義速度模式,可以使用 工具網(wǎng)站 這個(gè)網(wǎng)站制作/
  • compatibility
    • 目前谓着,各大瀏覽器(包括IE 10)都已經(jīng)支持無(wú)前綴的transition袜茧,所以transition已經(jīng)可以很安全地不加瀏覽器前綴途凫。
    • 不是所有的CSS屬性都支持transition危纫,完整的列表查看這里,以及具體的效果掰派。
    • transition需要明確知道从诲,開(kāi)始狀態(tài)和結(jié)束狀態(tài)的具體數(shù)值,才能計(jì)算出中間狀態(tài)靡羡。比如系洛,height從0px變化到100px俊性,transition可以算出中間狀態(tài)。但是碎罚,transition沒(méi)法算出0px到auto的中間狀態(tài)磅废,也就是說(shuō),如果開(kāi)始或結(jié)束的設(shè)置是height: auto荆烈,那么就不會(huì)產(chǎn)生動(dòng)畫(huà)效果。類似的情況還有竟趾,display: none到block憔购,background: url(foo.jpg)到url(bar.jpg)等等。
  • advantage : 簡(jiǎn)單易用
  • disavantage
    • transition需要事件觸發(fā)岔帽,所以沒(méi)法在網(wǎng)頁(yè)加載時(shí)自動(dòng)發(fā)生玫鸟。
    • transition是一次性的,不能重復(fù)發(fā)生犀勒,除非一再觸發(fā)屎飘。
    • transition只能定義開(kāi)始狀態(tài)和結(jié)束狀態(tài),不能定義中間狀態(tài)贾费,也就是說(shuō)只有兩個(gè)狀態(tài)钦购。
    • 一條transition規(guī)則,只能定義一個(gè)屬性的變化褂萧,不能涉及多個(gè)屬性押桃。

animation

  • grammar: name duration timing-function delay iteration-count direction
  • detail
    • @keyframes:規(guī)定動(dòng)畫(huà)
    • animation-name:綁定選擇器的keyframe名稱
    • animation-duration:動(dòng)畫(huà)的持續(xù)時(shí)間,以秒或者毫秒計(jì)
    • animation-timing-function:動(dòng)畫(huà)的速度曲線
    • animation-delay:延遲多少秒執(zhí)行動(dòng)畫(huà)
    • animation-iteration-count:動(dòng)畫(huà)播放次數(shù)
    • animation-diretion:是否應(yīng)該輪流反向播放動(dòng)畫(huà)
    • animation-play-state(通常用在js控制是否播放,object.style.animationPlayState):(paused[停止] | running[播放])規(guī)定動(dòng)畫(huà)正在播放還是暫停
    • animation-fill-mode(通常用在js控制動(dòng)畫(huà)效果是否可見(jiàn),object.style.animationFillMode):(none[不改變默認(rèn)行為] | forwards[當(dāng)動(dòng)畫(huà)完成后导犹,保持最后一個(gè)屬性值] | backwards[在animation-delay 所制定的一段時(shí)間內(nèi)唱凯,在動(dòng)畫(huà)顯示之前,應(yīng)該開(kāi)始屬性值] | both[向前和向后填充模式都被應(yīng)用])規(guī)定動(dòng)畫(huà)在播放之前或之后谎痢,其動(dòng)畫(huà)效果是否可見(jiàn)磕昼。
  • compatibility
    • Internet Explorer 10、Firefox 以及 Opera 支持 @keyframes 規(guī)則和 animation 屬性节猿。Chrome 和 Safari 需要前綴 -webkit-
    • Internet Explorer 9票从,以及更早的版本,不支持 @keyframe 規(guī)則或 animation 屬性
  • notice
    • 默認(rèn)值:animation:none 0 ease 0 1 normal
    • 盡量少在@keyframe里使用除了transform,opacity,filter以外的元素沐批,因?yàn)闀?huì)觸發(fā)瀏覽器的重繪(repaint)詳情
    • @keyframe
      • 定義:以百分比來(lái)規(guī)定改變發(fā)生的時(shí)間纫骑,或者通過(guò)關(guān)鍵詞"from" 和 "to",等價(jià)于0%和100%九孩,0%是動(dòng)畫(huà)的開(kāi)始時(shí)間先馆,100%是結(jié)束時(shí)間
      • grammar:@keyframes animationname{ keyframes-selector { css-styles;} }
      • detail
        • animationname:(必需)定義動(dòng)畫(huà)名稱
        • keyframes-selector:(必需)動(dòng)畫(huà)時(shí)長(zhǎng)的百分比,合法的值:0%-100%(可以使用 from[0%] 和 to[100%])
        • css-styles:(必需)一個(gè)或多個(gè)合法的css樣式屬性
      • example

          @keyframes mymove
          {
            0%   {top:0px;}
            25%  {top:200px;}
            50%  {top:100px;}
            75%  {top:200px;}
            100% {top:0px;}
          }
          @-moz-keyframes mymove /* Firefox */
          {
            0%   {top:0px;}
            25%  {top:200px;}
            50%  {top:100px;}
            75%  {top:200px;}
            100% {top:0px;}
          }

          @-webkit-keyframes mymove /* Safari 和 Chrome */
          {
            0%   {top:0px;}
            25%  {top:200px;}
            50%  {top:100px;}
            75%  {top:200px;}
            100% {top:0px;}
          }

          @-o-keyframes mymove /* Opera */
          {
            0%   {top:0px;}
            25%  {top:200px;}
            50%  {top:100px;}
            75%  {top:200px;}
            100% {top:0px;}
          }

  • 如果animation-duration屬性沒(méi)有設(shè)置躺彬,則時(shí)長(zhǎng)為0煤墙,即動(dòng)畫(huà)不會(huì)被播放
  • animation-iteration-count默認(rèn)值為1梅惯,可設(shè)置為infinite(無(wú)限次播放)
  • animation-direction:normal /正常播放/ | alternate /輪流反向播放/
  • advantage :解決了transition過(guò)渡效果不能循環(huán)播放的弊端
  • disvantage:目前,IE 10和Firefox(>= 16)支持沒(méi)有前綴的animation仿野,而chrome不支持铣减,所以必須使用webkit前綴。代碼必須寫(xiě)成下面這樣脚作。

      div:hover {
        -webkit-animation: 1s rainbow;
        animation: 1s rainbow;  
      }

      @-webkit-keyframes rainbow {
        0% { background: #c00; }
        50% { background: orange; }
        100% { background: yellowgreen; }
      }

      @keyframes rainbow {
        0% { background: #c00; }
        50% { background: orange; }
        100% { background: yellowgreen; }
      }

transform

  • grammar:transform:none | transform-functions
  • detail:none and transform-functions
    • none:不定義轉(zhuǎn)換
    • matrix(n,n,n,n,n,n):定義2D轉(zhuǎn)換葫哗,使用六個(gè)值的矩陣
    • matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n):定義3D轉(zhuǎn)換,使用16個(gè)值的4X4矩陣
    • translate(x,y):定義2D轉(zhuǎn)換(參數(shù):x軸移動(dòng)量球涛,y軸移動(dòng)量劣针。+即向右移動(dòng),-即向左移動(dòng)亿扁。單獨(dú)一個(gè)量時(shí)表示x軸移動(dòng)量與y軸移動(dòng)量相等)
    • translate3d(x,y,z):定義3D轉(zhuǎn)換(參數(shù)基于translate(x,y)擴(kuò)展)
    • translateX(x):定義轉(zhuǎn)換捺典,只用于X軸的值
    • translateY(y):定義轉(zhuǎn)換,只用于Y軸的值
    • translateZ(z):定義轉(zhuǎn)換从祝,只用于Z軸的值
    • scale(x,y):定義2D縮放轉(zhuǎn)換(參數(shù)x,y是倍數(shù))
    • scale(x,y,z):定義3D縮放轉(zhuǎn)換(參數(shù)基于scale(x,y)擴(kuò)展)
    • scaleX(x):設(shè)置X軸的值來(lái)定義縮放轉(zhuǎn)換
    • scaleY(y):設(shè)置Y軸的值來(lái)定義縮放轉(zhuǎn)換
    • scaleZ(z):設(shè)置Z軸的值來(lái)定義縮放轉(zhuǎn)換
    • rotate(angle):定義2D旋轉(zhuǎn)襟己。在參數(shù)中規(guī)定角度(正是順時(shí)針,負(fù)是逆時(shí)針)
    • rotate3d(x,y,z,angle):定義3D旋轉(zhuǎn)
    • rotateX(angle):定義沿著X軸的3D旋轉(zhuǎn)
    • rotateY(angle):定義沿著Y軸的3D旋轉(zhuǎn)
    • rotateZ(angle):定義沿著Z軸的3D旋轉(zhuǎn)
    • skew(x-angle,y-angle):定義沿著X和Y軸的2D傾斜轉(zhuǎn)換
    • skew(angle):定義沿著X軸的2D傾斜轉(zhuǎn)換
    • skew(angle):定義沿著Y軸的2D傾斜轉(zhuǎn)換
    • perspective(n):為3D轉(zhuǎn)換元素定義透視視圖
  • compatibility
    • Internet Explorer 10牍陌、Firefox擎浴、Opera 支持 transform 屬性
    • Internet Explorer 9 支持替代的 -ms-transform 屬性(僅適用于 2D 轉(zhuǎn)換)
    • Safari 和 Chrome 支持替代的 -webkit-transform 屬性(3D 和 2D 轉(zhuǎn)換)
    • Opera 只支持 2D 轉(zhuǎn)換
    • Internet Explorer 10 和 Firefox 支持 3D 轉(zhuǎn)換
    • Chrome 和 Safari 需要前綴 -webkit-
    • Opera 仍然不支持 3D 轉(zhuǎn)換(它只支持 2D 轉(zhuǎn)換)
  • notice
    • transform-origin可以定義改變被轉(zhuǎn)換元素的位置
      • grammar:transform-origin:x-axis,y-axis,z-zxis
      • 默認(rèn)值:transform-origin:50% 50% 0
      • detail
        • x-axis | y-axis:定義視圖被置于X軸的何處∧派模可能的值:left | center | right | length | %
        • z-axis:定義視圖被置于Z軸的何處退客。可能的值:length
      • compatibility
        • Internet Explorer 10链嘀、Firefox萌狂、Opera 支持 transform-origin 屬性
        • Internet Explorer 9 支持替代的 -ms-transform-origin 屬性(僅適用于 2D 轉(zhuǎn)換)
        • Safari 和 Chrome 支持替代的 -webkit-transform-origin 屬性(3D 和 2D 轉(zhuǎn)換)
        • Opera 只支持 2D 轉(zhuǎn)換
    • transform-style規(guī)定如何在3D空間中呈現(xiàn)被嵌套的元素
      • grammar:transform-style:flat | preserve-3d
      • tranform-style默認(rèn)值:transform-style:flat
      • compatibility
        • Firefox 支持 transform-style 屬性
        • Chrome、Safari 和 Opera 支持替代的 -webkit-transform-style 屬性
    • perspective定義3D元素距視圖的距離怀泊,以像素計(jì)茫藏。
      • grammar:perspective number | none
      • perspective默認(rèn)值:perspective:none
      • detail
        • 當(dāng)為元素定義 perspective 屬性時(shí),其子元素會(huì)獲得透視效果霹琼,而不是元素本身
        • perspective 屬性只影響 3D 轉(zhuǎn)換元素
        • 通常和perspective-origin屬性配合改變3D元素的底部位置
      • compatibility
        • 目前瀏覽器都不支持 perspective 屬性
        • Chrome 和 Safari 支持替代的 -webkit-perspective 屬性
    • perspective-origin定義 3D 元素所基于的 X 軸和 Y 軸务傲。該屬性允許您改變 3D 元素的底部位置
      • grammar:perspective-origin:x-axis,y-axis
      • perspective-origin默認(rèn)值:perspective-origin:50% 50%
      • detail
        • 當(dāng)為元素定義 perspective-origin 屬性時(shí),其子元素會(huì)獲得透視效果枣申,而不是元素本身
        • 該屬性必須與 perspective 屬性一同使用售葡,而且只影響 3D 轉(zhuǎn)換元素
      • compatibility
        • 目前瀏覽器都不支持 perspective-origin 屬性
        • Chrome 和 Safari 支持替代的 -webkit-perspecitve-origin 屬性
    • backface-visibility定義當(dāng)元素不面向屏幕時(shí)是否可見(jiàn)
      • grammar:backface-visibility: visible | hidden
      • backface-visibility默認(rèn)值:backface-visibility:visible
      • detail
        • 如果在旋轉(zhuǎn)元素不希望看到其背面時(shí),該屬性很有用
      • compatility
        • 只有 Internet Explorer 10+ 和 Firefox 支持 backface-visibility 屬性
        • Opera 15+忠藤、Safari 和 Chrome 支持替代的 -webkit-backface-visibility 屬性

下一篇文章預(yù)告: chrome dev tools 簡(jiǎn)介

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挟伙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子模孩,更是在濱河造成了極大的恐慌尖阔,老刑警劉巖贮缅,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異介却,居然都是意外死亡谴供,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)齿坷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)桂肌,“玉大人,你說(shuō)我怎么就攤上這事胃夏≈峄颍” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵仰禀,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蚕愤,道長(zhǎng)答恶,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任萍诱,我火速辦了婚禮悬嗓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘裕坊。我一直安慰自己包竹,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布籍凝。 她就那樣靜靜地躺著周瞎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪饵蒂。 梳的紋絲不亂的頭發(fā)上声诸,一...
    開(kāi)封第一講書(shū)人閱讀 49,772評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音退盯,去河邊找鬼彼乌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛渊迁,可吹牛的內(nèi)容都是我干的慰照。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼琉朽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼毒租!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起漓骚,我...
    開(kāi)封第一講書(shū)人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蝌衔,失蹤者是張志新(化名)和其女友劉穎榛泛,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體噩斟,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡曹锨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了剃允。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沛简。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖斥废,靈堂內(nèi)的尸體忽然破棺而出椒楣,到底是詐尸還是另有隱情,我是刑警寧澤牡肉,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布捧灰,位于F島的核電站,受9級(jí)特大地震影響统锤,放射性物質(zhì)發(fā)生泄漏毛俏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一饲窿、第九天 我趴在偏房一處隱蔽的房頂上張望煌寇。 院中可真熱鬧,春花似錦逾雄、人聲如沸阀溶。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)银锻。三九已至,卻和暖如春辽故,著一層夾襖步出監(jiān)牢的瞬間徒仓,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工誊垢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掉弛,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓喂走,卻偏偏與公主長(zhǎng)得像殃饿,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芋肠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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

  • 看了很多視頻乎芳、文章,最后卻通通忘記了,別人的知識(shí)依舊是別人的奈惑,自己卻什么都沒(méi)獲得吭净。此系列文章旨在加深自己的印象,因...
    DCbryant閱讀 1,857評(píng)論 0 4
  • 1肴甸、屬性選擇器:id選擇器 # 通過(guò)id 來(lái)選擇類名選擇器 . 通過(guò)類名來(lái)選擇屬性選擇器 ...
    Yuann閱讀 1,621評(píng)論 0 7
  • 2D寂殉、3D變形動(dòng)畫(huà) transform:2D變形:復(fù)合屬性 通過(guò) CSS3 轉(zhuǎn)換,我們能夠?qū)υ剡M(jìn)行移動(dòng)原在、縮放友扰、轉(zhuǎn)...
    Zd_silent閱讀 385評(píng)論 0 0
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font庶柿,text-align村怪,li...
    love2013閱讀 2,304評(píng)論 0 11
  • Kotlin 可以說(shuō)讓安卓開(kāi)發(fā)插上了翅膀,可以使用諸多優(yōu)秀的函數(shù)式語(yǔ)法(java8才帶) 簡(jiǎn)化了安卓開(kāi)發(fā)的代碼量浮庐。...
    上重樓閱讀 1,082評(píng)論 0 0