CSS3過渡屬性transition


transition的屬性

屬性可以分開寫,也可以放在一起寫

常用寫法:transition:transform(名稱) 1.2s(過渡時間) linear(過渡方式) 2s(過渡開始時間)

 

html代碼

<div class="content">
        <div class="allpic">
            <div class="pic pic1">
                <img src="703.jpg" width="150px" height="150px">
            </div>
            <div class="pic pic2">
                <img src="703.jpg" width="150px" height="150px">
            </div>
            <div class="pic pic3">
                <img src="703.jpg" width="150px" height="150px">
            </div>
            <div class="pic pic4">
                <img src="703.jpg" width="150px" height="150px">
            </div>
        </div>
    </div>

css代碼

*{  margin: 0px;padding: 0px;  }
.content{
    width: 80%;  height: 700px;  margin: 0 auto;  background-color: aqua;
}
.allpic{
    width: 800px;  height: 700px;  margin: 0 auto;
}
.pic{
    float: left;  padding: 5px;  margin: 15px;  border: 1px solid darkgray;
}
/*CSS過渡*/ .pic1{ transition: transform 1.2s linear; } .pic1:hover{ transform: rotate(180deg); } .pic2{ transition: transform 1.2s linear; } .pic2:hover{ transform: scale(1.2); } .pic3{ transition: transform 1.2s linear; } .pic3:hover{ transform: skew(60deg); } .pic4{ transition: transform 1.2s linear; } .pic4:hover{ transform: translate(10px); }

注:此處省略了瀏覽器兼容性代碼,方便細看

 

屬性詳解

transition-property

不是所有屬性都能過渡,只有屬性具有一個中間點值才具備過渡效果。見http://leaverou.github.io/animatable/

 

transition-duration

指定從一個屬性到另一個屬性過渡所要花費的時間。默認值為0,為0時,表示變化是瞬時的,看不到過渡效果。

 

transiton-timing-function

過渡函數,有如下幾種:

     Ease:首尾變緩。

     Linear:線性變化。

     Ease-in:開始慢,后面快。

     Ease-out:開始塊,后面慢。

     Ease-in-out:首尾慢,中間快。

     cubic-bezier:三次貝塞爾曲線,自定義(不太懂)

 

觸發過渡(重要)

單純的代碼不會觸發任何過渡操作,需要通過用戶的行為(如點擊,懸浮等)觸發,可觸發的方式有: 
:hover :focus :checked 媒體查詢觸發 JavaScript觸發

 

局限性

transition的優點在於簡單易用,但是它有幾個很大的局限。 
(1)transition需要事件觸發,所以沒法在網頁加載時自動發生。 
(2)transition是一次性的,不能重復發生,除非一再觸發。 
(3)transition只能定義開始狀態和結束狀態,不能定義中間狀態,也就是說只有兩個狀態。 
(4)一條transition規則,只能定義一個屬性的變化,不能涉及多個屬性。 

CSS Animation就是為了解決這些問題而提出的。(見下章)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM