2016-11-29 174 views
1

我正在嘗試使類".popUpWord"的文本具有動畫效果。懸停時,我想用顏色從左到右的文字進行彩色動畫。使用CSS從左到右填充文本顏色

<span class="popUpWord">hello</span> 

我想什麼做的是類似這樣的 - Animate text fill from left to right,但我希望它在充滿從左到右和停止,而不是重複它。

這是可能的通過CSS請嗎?

+0

你的意思是一〔梯度(https://en.wikipedia.org/wiki/Gradient)? – byxor

+0

我想達到的效果與卡拉OK文字的顯示方式類似。我不知道這是否可以使用梯度 – Techs

+0

來實現,你的意思是像這樣的http://codepen.io/anon/pen/eBemaM ... – DaniP

回答

2

添加外層div添加mix-blend-mode: multiply;:hover

.popUpWord { 
 
    text-transform: uppercase; 
 
    font: bold 26vmax/.8 Open Sans, Impact; 
 
    background: black; 
 
    display: table; 
 
    color: white; 
 
} 
 

 
.outPop:hover { 
 
    margin: auto; 
 
    background: linear-gradient(crimson , crimson) white no-repeat 0 0; 
 
    background-size: 0 100%; 
 
    animation: stripes 2s linear 1 forwards; 
 
} 
 
.outPop:hover .popUpWord{ 
 
    mix-blend-mode: multiply; 
 
} 
 

 
@keyframes stripes { 
 
    to { 
 
    background-size:100% 100%; 
 
    } 
 
} 
 

 
body { 
 
    float:left; 
 
    height: 100%; 
 
    background: black; 
 
}
<div class="outPop"> 
 
<div class="popUpWord"> 
 
    Text 
 
</div> 
 
</div>

+0

太棒了!這幾乎是這個問題的確切效果:http://stackoverflow.com/questions/40826683/css-continue-animation-after-mouseleave無論如何,有沒有什麼機會獲得所需的效果,當鼠標從文本移動(在mouseleave上)???那麼,紅色背景應該從左向右進一步移動,使文字再次變白,逐漸變爲白色? – sinisake

+0

@nevermind如果我們想要這個效果,當鼠標離開,那麼我們可以將其設置爲默認本身,並刪除':hover'上的動畫。 – jafarbtech

+0

不,我不清楚,很抱歉...請檢查.gif OP張貼...您的動畫在懸停時非常完美,現在只需在mouseleave上繼續......不確定是否只能使用CSS ... – sinisake