2013-08-21 200 views
12

尋找線索,如何使用背景顏色的不透明度與轉換?css轉換不透明度的背景顏色

我使用的是rgba()函數,但是轉換不能在懸停狀態下工作。

.bx{ 
    background:rgba(255,0,0,0.5); 
    width:100px; height:100px; 
    position:relative; 
    transition: opacity .5s ease-out; 
    -moz-transition: opacity .5s ease-out; 
    -webkit-transition: opacity .5s ease-out; 
    -o-transition: opacity .5s ease-out; 
} 

.bx:hover{ 
    background:rgba(255,0,0,1); 
} 

.t{ 
    position:absolute; 
    bottom:0px; 
} 

HTML

<div class="bx"><div class="t">text</div></div> 

任何想法,我怎麼可以使用.bx過渡?

回答

16

實際上,opacityrgba()是完全不同的。

由於您使用的是rgba()background財產的背景顏色,你需要使用background過渡性質如下:

.bx { 
    background: rgba(255,0,0,0.5); 
    width:100px; height:100px; 
    position: relative; 

    -webkit-transition: background .5s ease-out; 
    -moz-transition: background .5s ease-out; 
    -o-transition: background .5s ease-out; 
    transition: background .5s ease-out; 
} 

.bx:hover { 
    background: rgba(255,0,0,1); 
} 

JSBin Demo

+0

同意。不透明度沒有改變,所以過渡不會附加在它上面。 – Coop

+2

TIL;值得注意的是,動畫背景比動畫不透明度要昂貴得多(因爲它會導致重繪)。當你有許多元素同時動畫或在低功率設備上動畫時,這是值得注意的! – lukejacksonn