I created a CSS3 animation that works as intended, but on Internet Explorer the rotation is very jittery.
I'm creating a spinner loading indicator so I use CSS animations to do a transform: rotate(...);
. On Chrome and other browsers, the rotation is smooth, but on Internet Explorer it appears slightly wobbly.
I tried setting the transform-origin: center
, tried using straight pixel values instead of em
units and various other things, but nothing seemed to work.
Any ideas on how to improve this animation?
If I make the "track" (border-color
) that the quadrant spins upon completely transparent, it makes the effect less noticeable, but I figured I'd ask in case anyone has any ideas.
.loading {
display: inline-block;
font-size: 20px;
height: 1em;
width: 1em;
margin: 0 auto;
position: relative;
-webkit-animation: loading 1s infinite linear;
-moz-animation: loading 1s infinite linear;
animation: loading 1s infinite linear;
border-left: 0.25em solid rgba(0, 0, 0, .3);
border-right: 0.25em solid rgba(0, 0, 0, .3);
border-bottom: 0.25em solid rgba(0, 0, 0, .3);
border-top: 0.25em solid rgba(0, 0, 0, .8);
border-radius: 100%;
vertical-align: middle;
margin: 0 0.5em;
}
.loading * { display: none; }
@keyframes loading { from { transform:rotate(0deg); } to { transform:rotate(360deg); } }
@-moz-keyframes loading { from { -moz-transform:rotate(0deg); } to { -moz-transform:rotate(360deg); } }
@-webkit-keyframes loading { from { -webkit-transform:rotate(0deg); } to { -webkit-transform:rotate(360deg); } }
<div class="loading"></div>