Search code examples
cssinternet-explorercss-animationsfont-awesomefont-awesome-5

Animate between fontawesome icons not working in IE


I've created an animation to cycle through a set of individual FontAwesome icons. It is working on latest Firefox and Chrome, but on IE (10, 11, Edge) the icon simply doesn't change.

To prove that IE is at least trying to animate, I've added the colour CSS.

Is this something that just can't be done on IE with CSS alone?

i::before {
  animation: battery 5s infinite;
  font-size:2em;
}
@keyframes battery {
  0% { content: "\f244"; color:red; }
  25% { content: "\f243"; color:green; }
  50% { content: "\f242"; color:blue; }
  75% { content: "\f241"; color:yellow; }
  100% { content: "\f240"; color:purple; }
}
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" crossorigin="anonymous">
<i class="fas fa-battery-empty"></i>


Solution

  • As I commented, you can try with stacking icons:

    i.fas {
      animation: battery 5s infinite;
      opacity:0;
      color:red;
    }
    
    i.fas:nth-child(2) {animation-delay:1s;}
    i.fas:nth-child(3) {animation-delay:2s;}
    i.fas:nth-child(4) {animation-delay:3s;}
    i.fas:nth-child(5) {animation-delay:4s;}
    
    @keyframes battery{
      0%,20% { /* 20 = 100 / 5 */
        opacity:1;
      }
      21%,100% {
        opacity:0;
      }
    }
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" crossorigin="anonymous">
    
    <span class="fa-stack fa-4x">
      <i class="fas fa-stack-1x fa-battery-empty"></i>
      <i class="fas fa-stack-1x fa-battery-quarter"></i>
      <i class="fas fa-stack-1x fa-battery-half"></i>
      <i class="fas fa-stack-1x fa-battery-three-quarters"></i>
      <i class="fas fa-stack-1x fa-battery-full"></i>
    </span>