2017-10-09 1 views
1

Ich habe ein einfaches Laden von Raster in meiner Anwendung erstellt und eine Animation darüber hinzugefügt. Diese Animation scheint in jedem Browser außer IE11 zu funktionieren.CSS unendliche Animation funktioniert nicht in IE11

Kann mir jemand helfen zu verstehen, warum es nicht funktioniert und wie es in IE11 funktioniert?

.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 wenn Sie interessiert sind: https://jsfiddle.net/9shufwsL/

+0

möglich doppelte https://stackoverflow.com/questions/34809544/css3-animation-is-not-working-in-ie11-but-works-in -other-browsers – PraveenKumar

+0

Probieren Sie diese 'Animation: Laden von 1.2s unendlich;' –

+0

@ PraveenKumar nicht so viel, weil mein Problem nicht beantwortet wird durch irgendetwas in der Antwort auf diese Frage –

Antwort

1

Offenbar calc() funktioniert nicht in diesem Zusammenhang.

Ich habe den Wert left in keyframes geändert, um einen prozentbasierten Endpunkt zu verwenden, und es funktioniert in 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 funktioniert ganz gut in IE10 + http: // caniuse. com/# search = calc – Rob

+0

@Rob und so würden wir denken, aber es funktioniert nicht in diesem speziellen Fall, in dem 'calc()' in '@ keyframes' ist. Eine Suche nach IE11 calc bug gibt viele Treffer zurück. Go figure ... – jfeferman

+1

Nachdem ich an anderer Stelle kurz einen Kommentar gelesen habe, frage ich mich, ob es sinnvoll ist, 'calc()' in einem Keyframe zu verwenden, aber ich habe mir keine Gedanken darüber gemacht. Scheint, Keyframe sollte das Berechnen tun und 'calc()' sollte überhaupt nicht verwendet werden. – Rob

1

calc() funktioniert nicht in IE Sie die @keyframes ändern könnte:

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

Sie -moz-calc verwenden könnte und es funktionieren würde, aber ehrlich gesagt nicht das Beste, was zu tun .

Ihre Keyframes würde wie so aussehen:

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

calc funktioniert ganz gut in IE10 + http://caniuse.com/#search=calc – Rob

+0

Thx für den Page-Link Rob, ich gerade testeten Jesse's Code in IE11 und Edge und beide funktionierten nicht für mich. Aber es hat mit dem Code der richtigen Antwort funktioniert und beide Code-Schnipsel von mir antworten. – Tibix

Verwandte Themen