2015-10-07 6 views
6

私は、複数行のスプライトCSSアニメーション(http://codepen.io/simurai/pen/vmhuJ)を作成しようとしていましたが、Firefoxはbackground-position-xまたは-yをサポートしていません。CSSの変数とアニメーション

-x/-yの欠如は、ここで詳細に議論されている:https://bugzilla.mozilla.org/show_bug.cgi?id=550426、と提案された解決策(background-position-y doesn't work in Firefox (via CSS)?)は最近、Firefoxで導入されたCSS変数を、使用することです。

ただし、アニメーションのCSS変数の更新はサポートされていません。@keyframesがサポートされていますか?ここで

... 
background-position: var(--bgX) var(--bgY); 
... 

/*Here, CSS variables don't work:*/ 
@keyframes move-y { 
    from { 
    --bgY: 0px; 
    } 
    to { 
    --bgY: -670px; 
    } 
} 

はJSFiddle(:Firefoxの唯一の注):あるhttp://jsfiddle.net/phoj0kq5/
私はちょうどそれが実行していることを確認するためにアニメーションに国境をちらつき追加しましたが、カニは、その指をスナップしません..私はアムCSS変数を間違って使用するか、単純にアニメーションをサポートしないのですか?実際に(Firefoxでまだない)Chromeで動作します

更新フィドル

編集

http://jsfiddle.net/phoj0kq5/1/

+2

css-variables仕様では、アニメーションに関するカスタムプロパティの動作について説明しています([§2.1](http://www.w3.org/TR/css-variables-1/#syntax参照)および[§3 ](http://www.w3.org/TR/css-variables-1/#using-variables))、私はあまりにもアニメーションに精通していないので、私はさらにコメントすることはできません。 – BoltClock

+0

@BoltClock - ありがとう、それは良い情報です。私は彼らが言っていることを本当に理解していませんが、 "汚染された"とは約束していません... – Sphinxxx

+0

あなたはscssを使ってこの変数を使用しますhttp://sass-lang.com/guide – lyndact

答えて

1

これは解決策ではありませんが、回避策は助けるべきである:

ので、あなたがすることはできません列と行が一度に1つずつ変化しているときに画像の一部を動的に表示し、1つの列または行の画像部分のみを使用してみてください。

1行のサブイメージを使用する場合は、表示される部分をbackground-position: X 0;に設定し、Xはイメージごとのオフセットを設定する必要があります。これを実現するには、表示している画像ファイルを編集する必要があります。

ので、画像ファイル形式のサブ画像のレイアウトを変更:

☺☺☺☺ 
☺☺☺☺ 
☺☺☺☺ 

へ:

☺☺☺☺☺☺☺☺☺☺☺☺ 

私が言ったように、これは問題自体の解決策と、むしろ回避策はありませんが、すべてのブラウザで正常に動作するはずです。しかし、Mozillaは-x/-y属性を実装するか、CSS変数の問題をアニメーションで修正する必要があります。それまでは、私はこれのための適切な解決策を見ていない。

+0

ありがとう!はい、スプライトアニメーションを行うことができますが、実際の質問はアニメーションで新しいCSS変数を使用する方法です。ごめんなさい。 – Sphinxxx

+0

はい私はそこで何をしましたか?アニメーションは変数にこのような問題を引き起こすため、実際には回避策にすぎません。私はこれがMozilla関連の問題だと思っており、修正するべきです。彼らがこの問題を解決しない限り、回避策はうまくいくはずですが、イメージ編集スキルが必要で、余分な時間がかかります。私はそのことを申し訳なく思う – Karkan

関連する問題