2016-04-14 24 views
0

CSS3(グラデーションとアニメーション)を使用してiphoneスライドに似たアニメーションを作成し、グラデーションを解除しようとしています。しかし、何らかの理由でバックグラウンド位置は、静的なピクセル番号を使用しているときのみ機能し、パーセンテージを使用しないときは機能します。理想的には、このクラスを任意の要素に適用し、アニメーションを機能させることができます。特定の幅をコードする必要はありません。誰かが私を正しい方向に向けることができますか?CSSアニメーションとリニアグラデーションで背景位置が機能しない

JSFiddle: https://jsfiddle.net/ekLamtbL/

.slideToUnlock { 
    background: linear-gradient(-90deg, black 0%, gray 40%, white 45%, gray 55%, black 60%); 
    -webkit-background-clip: text; 
    -webkit-text-fill-color: transparent; 
    background-clip: text; 
    color: transparent; 
    -webkit-animation: slidetounlock 5s infinite; 
    animation: slidetounlock 5s infinite; 
    -webkit-animation-direction: normal; 
    animation-direction: normal; 
} 

@-webkit-keyframes slidetounlock { 
    0% { 
    background-position: -100% 0; 
    } 
    100% { 
    background-position: 100% 0; 
    } 
} 
+0

viewpoの使用を検討してくださいパーセンテージの代わりにrtの幅ですか? (100vw) – EoghanTadhg

+0

バックグラウンド率またはグラジエントの@EoghanTadhg? – mrK

+0

バックグラウンドの位置に配置:https://jsfiddle.net/7wLtzvLr/ おそらく私は誤解しました。 – EoghanTadhg

答えて

2

が追加されましたあなたのコード

background-size: 250% 250%; 

.slideToUnlock { 
    background: linear-gradient(-90deg, black 0%, gray 40%, white 45%, gray 55%, black 60%); 
    -webkit-background-clip: text; 
    -webkit-text-fill-color: transparent; 
    background-clip: text; 
    color: transparent; 
    -webkit-animation: slidetounlock 5s infinite; 
    animation: slidetounlock 5s infinite; 
    -webkit-animation-direction: normal; 
    animation-direction: normal; 
    background-size: 250% 250%; 
} 

https://jsfiddle.net/ekLamtbL/2/

関連する問題