• <var id="zvtmq"></var>
      <tt id="zvtmq"><pre id="zvtmq"></pre></tt>

      <font id="zvtmq"></font>

      <tt id="zvtmq"></tt>

        <var id="zvtmq"></var>
        <mark id="zvtmq"><pre id="zvtmq"><td id="zvtmq"></td></pre></mark>

        1. 
          

          <var id="zvtmq"><object id="zvtmq"><noscript id="zvtmq"></noscript></object></var><label id="zvtmq"><button id="zvtmq"><address id="zvtmq"></address></button></label>

            <tt id="zvtmq"><wbr id="zvtmq"></wbr></tt>
            <strike id="zvtmq"><output id="zvtmq"></output></strike>

          1. <del id="zvtmq"><wbr id="zvtmq"><meter id="zvtmq"></meter></wbr></del>

          2. <small id="zvtmq"></small>

            <code id="zvtmq"><rt id="zvtmq"></rt></code>
          3. <listing id="zvtmq"><object id="zvtmq"></object></listing>

                  animation與transition 區別

                  2019-2-4 18:38| 作者: admin| 查看: 361| 評論: 0|來自: 螞蟻部落

                  標題中的兩個屬性都可以實現動畫效果,某些場景下兩者表現幾乎一樣。

                  可以肯定的一點是,兩個屬性肯定各有特點,下面將詳細分析一下兩者的主要不同點。

                  關于兩個屬性的具體用法可以參閱如下兩篇文章:

                  (1).animation屬性參閱CSS3 animation 動畫一章節。

                  (2).transition屬性參閱CSS3 transition 過渡一章節。

                  我們知道屬性的命名與其功能密切相關,先從兩者的名稱入手。

                  (1).animation:具有"動畫"和"動畫片"的意思,名副其實此屬性的確可以定義動畫效果。

                  (2).transition:具有"過渡"的意思,規定屬性從一個值過渡的另一個值,雖然也具有動畫效果,但是和真正的動畫效果效果比太遜色了,因為它只有初始和結束兩個狀態,所以"過渡"是對其更為恰當的描述。

                  一.動畫狀態的區別:

                  animation動畫可以通過@keyframes屬性對動畫進行更為精細的控制,設置多個狀態。

                  但是transition屬性則只有兩個狀態,起始狀態與結束狀態。

                  代碼實例如下:

                  [HTML] 純文本查看 復制代碼运行代码
                  <!DOCTYPE html>  
                  <html>  
                  <head>  
                  <meta charset=" utf-8">  
                  <meta name="author" content="http://www.pecf.tw/" />  
                  <title>螞蟻部落</title> 
                  <style type="text/css"> 
                  div{
                    width:100px;
                    height:100px;
                    background:red;
                    position:relative;
                    top:100px;
                    animation:theanimation 4s infinite alternate;
                  }
                  @keyframes theanimation{
                    0%{left:0px;background:red;}
                    25%{left:30px;background:blue;}
                    50%{left:60px;background:yellow;}
                    75%{left:120px;background:green;}
                    100%{left:240px;background:red;}
                  }
                  </style>
                  </head>
                  <body>
                  <div></div>
                  </body>
                  </html>

                  代碼分析如下:

                  (1).一次完整的動畫時長是4秒。

                  (2).通過@keyframes屬性將動畫整個時長分為4份,在各自的時間段對動畫進行控制。

                  (3).也就是說animation動畫可以具有多個狀態,但是transtion動畫只有兩個狀態,起始狀態與結束狀態。

                  二.子屬性的數量不同:

                  兩個屬性都是復合屬性,包含有若干個子屬性,但是數目不相同。

                  當然子屬性數量不同會對效果有影響,很容易區分,本文不做更多介紹。

                  三.觸發時機不同:

                  兩個屬性的觸發時機有很大的不同,animation好比是一個自執行函數,只要定義好,立馬生效觸發動畫。

                  transition則像是一個事件處理函數(事件監聽器),只有它監聽的屬性值發生改變,動畫效果才會生效。

                  很容易理解,下面再來通過代碼實例進行一下演示:

                  [HTML] 純文本查看 復制代碼运行代码
                  <!DOCTYPE html> 
                  <html> 
                  <head> 
                  <meta charset=" utf-8"> 
                  <meta name="author" content="http://www.pecf.tw/" /> 
                  <title>螞蟻部落</title> 
                  <style> 
                  #ant{
                    width:100px;
                    height:100px;
                    background:blue;
                    cursor: pointer;
                    transition:width 2s;
                  }
                  #ant:hover{
                    width:500px;
                  }
                  </style>
                  </head>
                  <body>
                  <div id="ant"></div>
                  </body>
                  </html>

                  代碼分析如下:

                  (1).通過transition屬性監聽div元素width屬性的變化,動畫在兩秒內完成。

                  (2).當鼠標懸浮于div之上的時候,設置width的寬度為500px,寬度的變化此時被transition堅挺到。

                  (3).于是開始動畫效果,寬度會進行平滑的過渡。

                  但是animation屬性并不具有上述監聽效果,一旦定義,動畫效果立馬生效,與width或者height等屬性一個道理。

                  可能有朋友對上述結論有所懷疑,認為下面這種效果也是監聽行為,其實只是一種錯覺而已,代碼實例如下:

                  [HTML] 純文本查看 復制代碼运行代码
                  <!DOCTYPE html> 
                  <html> 
                  <head> 
                  <meta charset=" utf-8"> 
                  <meta name="author" content="http://www.pecf.tw/" /> 
                  <title>螞蟻部落</title> 
                  <style> 
                  div{
                    width:100px;
                    height:100px;
                    background:blue;
                    cursor: pointer;
                  }
                  @keyframes theanimation{
                    from {width: 100px;}
                    to {width: 500px;}
                  }
                  div:hover{  
                    animation:theanimation 2s forwards;
                  }
                  </style>
                  </head>
                  <body>
                    <div></div>
                  </body>
                  </html>

                  上述代碼中,當鼠標懸浮的時候,能夠以動畫方式設置div的寬度。

                  貌似與前面的代碼功能是一樣的,也監聽了"某些東西"一樣,然而事實并非如此。

                  首先,它并沒有監聽屬性的變化,第二個鼠標懸浮div的時候,是為div元素定義animation動畫。

                  本文對兩個屬性的主要區別進行了大致的介紹,如果朋友感覺需要有補充的地方,可以在文章底部留言。

                  1

                  鮮花

                  握手

                  雷人

                  路過

                  雞蛋

                  剛表態過的朋友 (1 人)

                  最新評論

                  返回頂部
                1. <var id="zvtmq"></var>
                    <tt id="zvtmq"><pre id="zvtmq"></pre></tt>

                    <font id="zvtmq"></font>

                    <tt id="zvtmq"></tt>

                      <var id="zvtmq"></var>
                      <mark id="zvtmq"><pre id="zvtmq"><td id="zvtmq"></td></pre></mark>

                      1. 
                        

                        <var id="zvtmq"><object id="zvtmq"><noscript id="zvtmq"></noscript></object></var><label id="zvtmq"><button id="zvtmq"><address id="zvtmq"></address></button></label>

                          <tt id="zvtmq"><wbr id="zvtmq"></wbr></tt>
                          <strike id="zvtmq"><output id="zvtmq"></output></strike>

                        1. <del id="zvtmq"><wbr id="zvtmq"><meter id="zvtmq"></meter></wbr></del>

                        2. <small id="zvtmq"></small>

                          <code id="zvtmq"><rt id="zvtmq"></rt></code>
                        3. <listing id="zvtmq"><object id="zvtmq"></object></listing>

                                快乐10分破解如何计算
                              1. <var id="zvtmq"></var>
                                  <tt id="zvtmq"><pre id="zvtmq"></pre></tt>

                                  <font id="zvtmq"></font>

                                  <tt id="zvtmq"></tt>

                                    <var id="zvtmq"></var>
                                    <mark id="zvtmq"><pre id="zvtmq"><td id="zvtmq"></td></pre></mark>

                                    1. 
                                      

                                      <var id="zvtmq"><object id="zvtmq"><noscript id="zvtmq"></noscript></object></var><label id="zvtmq"><button id="zvtmq"><address id="zvtmq"></address></button></label>

                                        <tt id="zvtmq"><wbr id="zvtmq"></wbr></tt>
                                        <strike id="zvtmq"><output id="zvtmq"></output></strike>

                                      1. <del id="zvtmq"><wbr id="zvtmq"><meter id="zvtmq"></meter></wbr></del>

                                      2. <small id="zvtmq"></small>

                                        <code id="zvtmq"><rt id="zvtmq"></rt></code>
                                      3. <listing id="zvtmq"><object id="zvtmq"></object></listing>

                                            1. <var id="zvtmq"></var>
                                                <tt id="zvtmq"><pre id="zvtmq"></pre></tt>

                                                <font id="zvtmq"></font>

                                                <tt id="zvtmq"></tt>

                                                  <var id="zvtmq"></var>
                                                  <mark id="zvtmq"><pre id="zvtmq"><td id="zvtmq"></td></pre></mark>

                                                  1. 
                                                    

                                                    <var id="zvtmq"><object id="zvtmq"><noscript id="zvtmq"></noscript></object></var><label id="zvtmq"><button id="zvtmq"><address id="zvtmq"></address></button></label>

                                                      <tt id="zvtmq"><wbr id="zvtmq"></wbr></tt>
                                                      <strike id="zvtmq"><output id="zvtmq"></output></strike>

                                                    1. <del id="zvtmq"><wbr id="zvtmq"><meter id="zvtmq"></meter></wbr></del>

                                                    2. <small id="zvtmq"></small>

                                                      <code id="zvtmq"><rt id="zvtmq"></rt></code>
                                                    3. <listing id="zvtmq"><object id="zvtmq"></object></listing>