سؤال

I am trying a CSS3 animation loader but it isn't working on Chrome. Works fine on Safari.

The jsfiddle is here and I originally took the code from here (number 8)

Changing animation to -webkit-animation also doesn't solve the issue.

هل كانت مفيدة؟

المحلول

You need to add -webkit-animation and @-webkit-keyframes css too..

/*** Config ***/
/* Colors */
/* used for row 1 & 2 */
/* used for row 1 & 2 */
/* Dimensions */
/*** Animations / styles ***/

@keyframes border-loading-indicator-row-1 {
  0% {
    border-color: rgba(0, 0, 0, 0.25);
    border-top-color: black;
  }

  25% {
    border-color: rgba(0, 0, 0, 0.25);
    border-right-color: black;
  }

  50% {
    border-color: rgba(0, 0, 0, 0.25);
    border-bottom-color: black;
  }

  75% {
    border-color: rgba(0, 0, 0, 0.25);
    border-left-color: black;
  }

  100% {
    border-color: rgba(0, 0, 0, 0.25);
    border-top-color: black;
  }
}
@keyframes border-loading-indicator-row-2 {
  0% {
    border-color: black rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.5) rgba(0, 0, 0, 0.75);
  }

  25% {
    border-color: rgba(0, 0, 0, 0.75) black rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.5);
  }

  50% {
    border-color: rgba(0, 0, 0, 0.5) rgba(0, 0, 0, 0.75) black rgba(0, 0, 0, 0.25);
  }

  75% {
    border-color: rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.5) rgba(0, 0, 0, 0.75) rgba(0, 0, 0, 0.75);
  }

  100% {
    border-color: black rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.5) rgba(0, 0, 0, 0.75);
  }
}

@-webkit-keyframes border-loading-indicator-row-1 {
  0% {
    border-color: rgba(0, 0, 0, 0.25);
    border-top-color: black;
  }

  25% {
    border-color: rgba(0, 0, 0, 0.25);
    border-right-color: black;
  }

  50% {
    border-color: rgba(0, 0, 0, 0.25);
    border-bottom-color: black;
  }

  75% {
    border-color: rgba(0, 0, 0, 0.25);
    border-left-color: black;
  }

  100% {
    border-color: rgba(0, 0, 0, 0.25);
    border-top-color: black;
  }
}

@-webkit-keyframes border-loading-indicator-row-1 {
  0% {
    border-color: rgba(0, 0, 0, 0.25);
    border-top-color: black;
  }

  25% {
    border-color: rgba(0, 0, 0, 0.25);
    border-right-color: black;
  }

  50% {
    border-color: rgba(0, 0, 0, 0.25);
    border-bottom-color: black;
  }

  75% {
    border-color: rgba(0, 0, 0, 0.25);
    border-left-color: black;
  }

  100% {
    border-color: rgba(0, 0, 0, 0.25);
    border-top-color: black;
  }
}
@-webkit-keyframes border-loading-indicator-row-2 {
  0% {
    border-color: black rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.5) rgba(0, 0, 0, 0.75);
  }

  25% {
    border-color: rgba(0, 0, 0, 0.75) black rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.5);
  }

  50% {
    border-color: rgba(0, 0, 0, 0.5) rgba(0, 0, 0, 0.75) black rgba(0, 0, 0, 0.25);
  }

  75% {
    border-color: rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.5) rgba(0, 0, 0, 0.75) rgba(0, 0, 0, 0.75);
  }

  100% {
    border-color: black rgba(0, 0, 0, 0.25) rgba(0, 0, 0, 0.5) rgba(0, 0, 0, 0.75);
  }
}
.border-loading-indicator {
  width: 0px;
  height: 0px;
  position: absolute;
  margin: -30px 0 -30px;
  border: 0px solid black;
  border-width: 30px 30px;
}

.border-loading-indicator.row-1 {
  top: 25%;
  -webkit-animation: border-loading-indicator-row-1 750ms linear infinite;
}

.border-loading-indicator.row-2 {
  top: 75%;
  -webkit-animation: border-loading-indicator-row-2 750ms linear infinite;
}

.border-loading-indicator.col-1 {
  width: 30px;
  height: 30px;
  border-width: 15px 15px;
  left: 25%;
}

.border-loading-indicator.col-2 {
  left: 50%;
}

.border-loading-indicator.col-3 {
  width: 0px;
  height: 0px;
  left: 75%;
  border-radius: 30px 30px 30px 30px;
}

Check out this fiddle http://jsfiddle.net/LkVc5/

نصائح أخرى

If you like to know that How it may work without prefixing ?

It can work because it's prefixed by -prefix-free.

And you can see in pen(When you open 8th loader in CodePen) that -prefix-free is checked(In css gear menu). So code isn't prefixed.

Thanks

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top