我想要達到的效果要比用戶將鼠標懸停在div上時的效果好,它的背景顏色變成了一個漸變,可以使用純粹的CSS反覆地從一個角落切換到另一個角落。如何平滑地動畫漸變背景
我想達到的效果,試圖把它放在文字上,只要光標保持在上方,背景的較暗部分(帶有0.9不透明度的那一部分)就會從一個角落滑到另一個角落元件。
實際發生的事情是背景從一個狀態跳轉到另一個狀態。我哪裏錯了?我怎樣才能讓這成爲一種動畫效果,流暢的效果?
這裏是我的代碼:
#test {
width: 200px;
height: 200px;
background-color: rgba(215, 54, 92, 0.7);
}
@keyframes test_hover {
from {
background: -webkit-linear-gradient(45deg, rgba(215, 54, 92, 0.9), rgba(215, 54, 92, 0.5)); /* For Safari 5.1 to 6.0 */
background: -o-linear-gradient(45deg, rgba(215, 54, 92, 0.9), rgba(215, 54, 92, 0.5)); /* For Opera 11.1 to 12.0 */
background: -moz-linear-gradient(45deg, rgba(215, 54, 92, 0.9), rgba(215, 54, 92, 0.5)); /* For Firefox 3.6 to 15 */
background: linear-gradient(45deg, rgba(215, 54, 92, 0.9), rgba(215, 54, 92, 0.5)); /* Standard syntax (must be last) */
}
to {
background: -webkit-linear-gradient(45deg, rgba(215, 54, 92, 0.5), rgba(215, 54, 92, 0.9)); /* For Safari 5.1 to 6.0 */
background: -o-linear-gradient(45deg, rgba(215, 54, 92, 0.5), rgba(215, 54, 92, 0.9)); /* For Opera 11.1 to 12.0 */
background: -moz-linear-gradient(45deg, rgba(215, 54, 92, 0.5), rgba(215, 54, 92, 0.9)); /* For Firefox 3.6 to 15 */
background: linear-gradient(45deg, rgba(215, 54, 92, 0.5), rgba(215, 54, 92, 0.9)); /* Standard syntax (must be last) */
}
}
#test:hover {
cursor: pointer;
animation-name: test_hover;
animation-duration: 4s;
animation-delay: 1s;
animation-iteration-count: infinite;
}
<div id="test"></div>
這裏是JSFiddle
這個問題已經被提及是從here重複,但我認爲事實並非如此。首先,這個問題中沒有代碼,這使得難以理解。另外,在回答這個問題時,他使用了一個過渡,但我不想過渡,因爲它只應用了一次,我希望我的動畫在用戶懸停div時不斷重複。
同樣的事情真的,動畫或過渡......這不是可轉換/動畫。你必須以我認爲的bg位置做一些事情。 –
@ pablito.aven他的確幫忙解釋。背景漸變不可轉換。您可以使用圖像並播放背景位置,但這是關於它的。 – CaldwellYSR
你可以用javascript來實現它http://stackoverflow.com/questions/33892656/how-change-css-using-variables-to-make-an-animation –