2016-04-20 1 views
2

Chromeでは、次のCSS3アニメーションが期待通りに機能し、アウトラインのアニメーションがレンダリングされます。ただし、Internet ExplorerとFirefoxでは、これは機能しません。Chromeでのみ動作する略語アニメーション

@keyframes outline-pulse { 
 
    0% { 
 
    outline: 10px solid green; 
 
    } 
 
    
 
    100% { 
 
    outline: 0px solid green; 
 
    } 
 
} 
 

 
.animate { 
 
    animation: outline-pulse 1s linear 0; 
 
    animation-iteration-count: infinite; 
 
}
<fieldset class="animate"> 
 
    <p>Content</p> 
 
</fieldset>

答えて

2

これは、WDの見落としによるものと思われます。特に、キーフレーム内の略式宣言は考慮されていません。ほとんどの場合、アニメーション化できないコンポーネントプロパティが少なくとも1つ含まれています。実際には、これは間違いエディタconfirmedであること:

はい、私たちは絶対にすべての値が遷移可能であることを意図し、明示的なルールを持っていないものだけ シングルステップ遷移で行くと 。まだ完了していません。

そして、引用されたテキスト2013 WDはEDに更新されているから:

キーフレームルールのキーフレーム宣言ブロックは、プロパティと値で構成されています。 この仕様で定義されたプロパティが

注意今それだけanimation-*特性を除外すること、アニメーションタイミング機能を除いて、これらのルールに無視されます。

IEとFirefoxが仕様に違反しているかどうかは、仕様が成熟に達していないため議論の余地があります。しかし、残念なことに、マイクロソフトではこれを除外しようとしない限り、IEで修正される可能性は非常に低いです。しかし、Microsoft Edgeで修正される可能性は非常に高いです。

その間に、キーフレームに簡略記号を指定しないように注意する必要があります。実際にアニメーション化されるプロパティーのみを変更し、残りは通常のスタイル・ルールで指定します。

+0

あなたのアドバイスに沿ってあなたの答えにスニペットを入れたらどうですか? – jdphenix

+0

@jdphenix:先に進んでください! – BoltClock

2

Internet ExplorerとFirefoxはこの効果をレンダリング持つために、あなたは、クラス定義にアウトラインを追加する必要があります。 0ピクセルの輪郭は、外観を変更せずに動作させます。

@keyframes outline-pulse { 
 
    0% { 
 
    outline: 10px solid green; 
 
    } 
 
    
 
    100% { 
 
    outline: 0px solid green; 
 
    } 
 
} 
 

 
.animate { 
 
    animation: outline-pulse 1s linear 0; 
 
    animation-iteration-count: infinite; 
 
    outline: 0 solid green; /* important bit */ 
 
}
<fieldset class="animate"> 
 
    <p>Content<p> 
 
</fieldset>

キーフレーム宣言ブロック(強調鉱山)についてCSS Animations明細書に記載ので、これは必要である:

キーフレームルールのキーフレーム宣言ブロックは、プロパティで構成され値。アニメ化することができませんプロパティ「のアニメーション・タイミング関数」を除いて、これらのルールでは無視され、

@Harryはコメントで指摘するように、outline-styleプロパティがアニメーション可能ではありません、そして、それはですキーフレーム宣言の存在は、仕様で定義されているInternet ExplorerとFirefoxでは無視されます。したがって、表示するには、クラス宣言でoutline-styleを宣言する必要があります。

+0

これは私がそれを理解する前に今日の私の時間の数時間を食べました。私はより良い説明を見たいと思う "ここには何かが働いている!"なぜ私は実際に回避策が働いているのか分かりません。 – jdphenix

+0

問題を引き起こしていると思われる 'outline-style'(アニメーション化できません)です。基本クラスに 'outline-style:solid'を設定しただけでFFで動作します。 Chrome v43では、問題のスニペット自体は機能しません。しかし、 '0%'フレームが既にスタイルを指定しているため、Chromeの現在の動作が正しいと思います。 – Harry

+0

@ハリーそれは面白いです。キーフレーム内にアニメーション化できないプロパティを無視するのは妥当なので、Chromeの動作が正しいかどうかはわかりません。この仕様は、アニメーション化できないプロパティは単に無視されることを意味しています。 – jdphenix

関連する問題