欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

CSS3中的元素過渡屬性transition示例詳解

  發(fā)布時間:2016-11-30 14:26:55   作者:佚名   我要評論
大家都知道過渡動畫是動畫的基礎(chǔ),在學習動畫屬性之前,我們需要先了解過渡屬性transition,下面這篇文章通過示例代碼給大家詳細介紹了CSS3中的元素過渡屬性transition,有需要的朋友們可以參考借鑒,下面來跟小編一起學習學習吧。

前言

W3C標準中對css3的transition這是樣描述的:“css的transition允許css的屬性值在一定的時間區(qū)間內(nèi)平滑地過渡。這種效果可以在鼠標單擊、獲得焦點、被點擊或?qū)υ厝魏胃淖冎杏|發(fā),并圓滑地以動畫效果改變CSS的屬性值。”

過渡transition

先來看一個小例子

<div class="demo"></div>
.demo {
    width: 100px;
    height: 100px;
    background-color: royalblue;
}
.demo:hover {
    width: 200px;
}

這樣當我的光標懸浮在demo的一瞬間

它的寬度變成了200px

有沒有辦法讓我們光標懸浮在元素時,元素寬度緩慢變寬呢

在CSS3之前我們只能使用麻煩的js腳本

但是現(xiàn)在我們只需要添加一個屬性

就可以達到我們的目的

.demo {
    width: 100px;
    height: 100px;
    background-color: royalblue;
    transition: width 1s; /*增*/
}
.demo:hover {
    width: 200px;
}

transition它的作用就是指定當你的元素某些樣式發(fā)生變化時

這些樣式可以漸漸過渡到最終屬性值

它是一個復(fù)合屬性

有以下子屬性

      transition-property:指定過渡或動態(tài)模擬的css屬性

      transition-duration:指定過渡所需要的時間

      transition-timing-function:指定過渡函數(shù)

      transition-delay:指定開始出現(xiàn)的延遲時間

transition-property 我們想要哪種屬性過渡就寫哪種屬性

或者干脆寫過渡所有屬性的關(guān)鍵字all

transition-duration漸變時間屬性值就是“數(shù)字+s”

代表幾秒鐘內(nèi)過渡

transition-timing-function 是可選的屬性值,有如下可選值

      linear 

      線性過渡,等價貝塞爾曲線(0.0, 0.0, 1.0, 1.0)

      ease(默認)

      平滑過渡,等價貝塞爾曲線(0.25, 0.1, 0.25, 1.0)

      ease-in

      由慢到快,等價貝塞爾曲線(0.42, 0, 1.0, 1.0)

      ease-out

      由快到慢,等價貝塞爾曲線(0, 0, 0.58, 1.0)

      ease-in-out

      由慢到快再到慢,等價貝塞爾曲線(0.42, 0, 0.58, 1.0)

      step-start

      等同 steps(1, start)

      step-end

      等同 steps(1, end)

      steps():

      兩個參數(shù)的步進函數(shù)。第一個參數(shù)為正整數(shù),指定函數(shù)步數(shù)。第二個參數(shù)取值是start或end,指定每一步的值發(fā)生變化的時間點。第二個參數(shù)可選,默認值為end。

      cubic-bezier(num, num, num, num):

      特定的貝塞爾曲線類型,4個數(shù)值需在[0, 1]區(qū)間內(nèi)

大多我們都用不上,最常用的大概就是我們默認的ease和線性過渡linear了

transition-delay 同樣是可選屬性值

如果你想要延遲過渡,換句話說如果我們想要在過渡前停一小會兒

那么就在這個復(fù)合屬性的最后添加我們需要延遲的時間“數(shù)字+s”

這個屬性可以對多個不同的屬性進行設(shè)置

我們要做的就是使用逗號隔開

.demo {
    width: 100px;
    height: 100px;
    background-color: royalblue;
    transition: width 1s linear, 
                height 1s linear,
                background-color 2s 1s; /*改*/
}
.demo:hover {
    width: 200px;
    height: 200px;
    background-color: lawngreen; /*改*/
}

鼠標移出元素后,元素又過渡回來

使用過渡屬性而不是腳本的另一個原因是

腳本方法改變多個元素樣式可能會產(chǎn)生沖突

解決的辦法是使用bool變量加鎖,還是很麻煩

我們的transition過渡屬性就不需要考慮這么多

元素與元素之間互不影響

還有一點要注意,元素過渡需要知道樣式具體的起始屬性和末尾屬性

比如說我們例子中的width明確了從100px過渡到200px

.demo:hover {
    width: auto; /*改*/
    height: 200px;
    background-color: lawngreen; /*改*/
}

改變了懸浮樣式width為auto

我們發(fā)現(xiàn)當光標懸浮元素后

width屬性并沒有發(fā)生過渡

參與過渡的屬性

當然也不是所有的樣式都可以過渡

比如說你想讓 display:block 過渡到 display:inline-block

那是不可能的

有以下屬性參與過渡

color
visibility
opacity
vertical-align
z-index
clip
width/height
top/bottom/left/right
background-color/position
border-top/bottom/left/right-color/width
border/letter/word-spacing
font-size/weight
line-height
margin/padding-top/bottom/left/right
max/min-height/width
outline-color/width
text-indent/shadow

可以看到這個屬性真的是十分強大

總結(jié)

以上就是這篇文章的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

最新評論