2017-10-09 13 views
1

私はアプリケーションで単純な読み込みグリッドを作成し、その上にアニメーションを追加しました。このアニメーションは、IE11を除くすべてのブラウザで動作するようです。IE11でCSS無限アニメーションが機能しない

誰かが私がなぜそれがうまくいかず、IE11で動作させる方法を理解する助けになることができますか?

.loading { 
 
    background-color: #ededed; 
 
    height: 12px; 
 
    width: 500px; 
 
    overflow: hidden; 
 
} 
 

 
.animation { 
 
    animation: loading 1.2s linear; 
 
    animation-iteration-count: infinite; 
 
    background-color: #e0e0e0; 
 
    height: 100%; 
 
    left: 0; 
 
    position: relative; 
 
    top: auto; 
 
    width: 300px; 
 
} 
 

 
@keyframes loading { 
 
    from {left: -30rem} 
 
    to {left: calc(100% + 30rem)} 
 
}
<div class="loading"> 
 
    <div class="animation"></div> 
 
</div>

JSFiddleもし興味があるなら:https://jsfiddle.net/9shufwsL/

+0

可能重複https://stackoverflow.com/questions/34809544/css3-animation-is-not-working-in-ie11-but-works-in -other-browsers – PraveenKumar

+0

このアニメーションを試してみてください: –

+0

@PraveenKumar私の問題はその質問に対する答えの何も答えられていないので、 –

答えて

1

どうやらcalc()このコンテキストでは動作しません。

leftの値をkeyframesに変更し、パーセントベースのエンドポイントを使用し、IE11で機能します。

.loading { 
 
    background-color: #ededed; 
 
    height: 12px; 
 
    width: 500px; 
 
    overflow: hidden; 
 
} 
 

 
.animation { 
 
    animation: loading 1.2s linear; 
 
    animation-iteration-count: infinite; 
 
    background-color: #e0e0e0; 
 
    height: 100%; 
 
    left: 0; 
 
    position: relative; 
 
    top: auto; 
 
    width: 300px; 
 
} 
 

 
@keyframes loading { 
 
    from {left: -30rem} 
 
    to {left: 110%} 
 
}
<div class="loading"> 
 
    <div class="animation"></div> 
 
</div>

+0

calcはIE10 + http:// caniuseでうまく動作します。 com /#search = calc – Rob

+0

@Robだから、私たちは思うだろうが、 'calc()'が '@keyframes'の中にあるこの特定のケースではうまくいきません。 IE11のcalcバグを検索すると多くのヒットが返されます。 Go figure ... – jfeferman

+1

他の場所で簡単にコメントを読んだあと、キーフレームで 'calc()'を使っても意味があるのか​​どうか疑問ですが、何も考えていません。キーフレームは計算を行うべきであり、 'calc()'はまったく使用しないでください。 – Rob

1

calc()あなたが@keyframesを変えることができるIEでは動作しません:あなたは-moz-calcを使用することができますし、それを行うための最善のことを動作しますが、正直なところではないでしょう

@keyframes loading { 
    from {left: -30rem} 
    to {left: 30rem} 
} 

あなたのキーフレームがそうのようになります。

@keyframes loading { 
    from {left: -30rem} 
    to {left: -moz-calc(100% + 30rem)} 
} 
+0

の計算はIE10でうまく動作します+ http://caniuse.com/#search=calc – Rob

+0

ページリンクロブのためのThx、ちょうどJesseのコードはIE11とEdgeでテストされていて、どちらも私にとってはうまくいきませんでした。しかし、それは正解のコードと私の答えの両方のコードスニペットで動作しました。 – Tibix

関連する問題