Estoy tratando de replicar un indicador de actividad al estilo de Apple (icono de carga del reloj de sol) usando una animación PNG y CSS3. Tengo la imagen girando y haciéndolo continuamente, pero parece haber un retraso después de que la animación ha terminado antes de que haga la siguiente rotación.
@-webkit-keyframes rotate {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
}
}
#loading img
{
-webkit-animation-name: rotate;
-webkit-animation-duration: 0.5s;
-webkit-animation-iteration-count: infinite;
-webkit-transition-timing-function: linear;
}
He intentado cambiar la duración de la animación, pero no hace ninguna diferencia, si la ralentizas, digamos 5 s, es más evidente que después de la primera rotación hay una pausa antes de que vuelva a girar. Es esta pausa de la que quiero deshacerme.
Cualquier ayuda es muy apreciada, gracias.
Respuestas:
Su problema aquí es que ha proporcionado un
-webkit-TRANSITION-timing-function
cuando lo desea-webkit-ANIMATION-timing-function
. Sus valores de 0 a 360 funcionarán correctamente.fuente
ease
función de sincronización predeterminada ).También puede notar un pequeño retraso porque 0deg y 360deg son el mismo lugar, por lo que va desde el punto 1 en un círculo al punto 1. Es realmente insignificante, pero para solucionarlo, todo lo que tiene que hacer es cambiar 360deg a 359 grados
my jsfiddle ilustra tu animación:
Además, lo que podría parecerse más al icono de carga de Apple sería una animación que cambia la opacidad / color de las franjas de gris en lugar de girar el icono.
fuente
Podrías usar una animación como esta:
fuente
Si solo está buscando una versión de webkit, esta es genial: http://s3.amazonaws.com/37assets/svn/463-single_spinner.html desde http://37signals.com/svn/posts/2577-loading- spinner-animation-usando-css-y-webkit
fuente
GIF
yCSS
. Mi colección . Si sabe más, hágamelo saber.Tu código parece correcto. Supongo que tiene algo que ver con el hecho de que está utilizando un .png y la forma en que el navegador vuelve a dibujar el objeto al girar es ineficiente, lo que provoca el bloqueo (¿con qué navegador está probando?)
Si es posible, reemplace el .png con algo nativo.
ver; http://kilianvalkhof.com/2010/css-xhtml/css3-loading-spinners-without-images/
Chrome no me da pausas al usar este método.
fuente
Hice una pequeña biblioteca que te permite usar fácilmente un vibrador sin imágenes.
Utiliza CSS3 pero recurre a JavaScript si el navegador no lo admite.
Ejemplo .
fuente