Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] Animación CSS3 en Internet Explorer 10

Estas en el tema de Animación CSS3 en Internet Explorer 10 en el foro de CSS en Foros del Web. Tengo una animación muy sencilla que funciona perfectamente en google chrome pero no en internet explorer 10. El código es el siguiente. Ojalá me puedan ...
  #1 (permalink)  
Antiguo 07/07/2013, 11:12
src
 
Fecha de Ingreso: julio-2013
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 1
Pregunta Animación CSS3 en Internet Explorer 10

Tengo una animación muy sencilla que funciona perfectamente en google chrome pero no en internet explorer 10. El código es el siguiente. Ojalá me puedan ayudar. De antemano, gracias.

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. div
  3. {
  4. width:200px;
  5. height:200px;
  6. background-image:url(uno.jpg);
  7. animation:cambia 40s;
  8. -webkit-animation:cambia 40s;
  9. }
  10.  
  11. @keyframes cambia
  12. {
  13. 0%   {background-image:url(uno.jpg);}
  14. 25%  {background-image:url(dos.jpg);}
  15. 50%  {background-image:url(tres.jpg);}
  16. 75%  {background-image:url(cuatro.jpg);}
  17. 100% {background-image:url(uno.jpg);}
  18. }
  19.  
  20. @-webkit-keyframes cambia
  21. {
  22. 0%   {background-image:url(uno.jpg);}
  23. 25%  {background-image:url(dos.jpg);}
  24. 50%  {background-image:url(tres.jpg);}
  25. 75%  {background-image:url(cuatro.jpg);}
  26. 100% {background-image:url(uno.jpg);}
  27. }
  28.  
  29. </head>
  30.  
  31. <div></div>
  32.  
  33. </body>
  34. </html>

Última edición por pzin; 07/07/2013 a las 11:54 Razón: highlight
  #2 (permalink)  
Antiguo 07/07/2013, 11:59
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: animacion css3 en internet explorer 10

Bienvenido al foro.

En principio las animaciones funcionan en IE10. Lamentablemente, no tengo IE instalado.

Intenta hacer una prueba reducida para IE, algo así:

Código CSS:
Ver original
  1. div {
  2.   width: 200px;
  3.   height: 200px;
  4.   animation: cambia 4s;
  5. }
  6.  
  7. @keyframes cambia {
  8.   from {
  9.     color: red;
  10.   }
  11.   to {
  12.     color: blue;
  13.   }
  14. }

Con algo de texto en ese div. Y a partir de ahí lo vas complicando poco a poco hasta llegar a lo que tienes. Así podrás comprobar en qué punto ocurre el fallo.

Cuando publiques código, intenta usar code o highlight.
  #3 (permalink)  
Antiguo 07/07/2013, 12:57
src
 
Fecha de Ingreso: julio-2013
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: animacion css3 en internet explorer 10

Gracias por tu comentario, ya lo he intentado; si en lugar de utilizar imágenes para el background hago solo transiciones de colores (background:red) funciona perfectamente. El problema inicia cuando quiero que haga la transición con imágenes.
  #4 (permalink)  
Antiguo 08/07/2013, 00:13
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 1 mes
Puntos: 1826
Respuesta: animacion css3 en internet explorer 10

No hay transiciones entre imágenes, lo que se puede hacer es poner objetos uno sobre otro y animar la opacidad.
  #5 (permalink)  
Antiguo 08/07/2013, 10:03
src
 
Fecha de Ingreso: julio-2013
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: animacion css3 en internet explorer 10

Gracias a Pzin y a Rafael por tomarse el tiempo para ayudarme. Seguiré el consejo de Rafael.
  #6 (permalink)  
Antiguo 08/07/2013, 11:13
Avatar de sonickseven  
Fecha de Ingreso: diciembre-2012
Ubicación: bogota
Mensajes: 404
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: animacion css3 en internet explorer 10

olle por cierto creo que para windows sw utiliza el prefijo -ms- !! si quieres que funcione
  #7 (permalink)  
Antiguo 08/07/2013, 11:23
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: animacion css3 en internet explorer 10

Cita:
Iniciado por sonickseven Ver Mensaje
olle por cierto creo que para windows sw utiliza el prefijo -ms- !! si quieres que funcione
No. IE10 soporta la forma de la W3C, e IE9 e inferiores directamente no tienen soporte.
  #8 (permalink)  
Antiguo 11/07/2013, 17:45
src
 
Fecha de Ingreso: julio-2013
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: animacion css3 en internet explorer 10

Siguiendo el consejo de Rafael, la animación la llevé a cabo controlando la opacidad de las imágenes. Les dejo el código que funciona en IE10, para que funcione en el resto de los navegadores solo hay que agregar los prefijos correspondientes (-webkit-, -moz-, etc). Espero que le sea de utilidad a alguien más. Gracias a todos por su ayuda.

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. body{
  3. background: #CFF;
  4. }
  5. #imagen {
  6. width: 200px;
  7. height: 200px;
  8. position: absolute;
  9. top: 0px;
  10. left: 0px;
  11. opacity:0;
  12. }
  13.  
  14. #imagen.anim_1 {
  15.    animation: ciclo_1 50s linear infinite;     
  16. }
  17. #imagen.anim_2 {
  18.    animation: ciclo_2 50s linear infinite;     
  19. }
  20. #imagen.anim_3 {
  21.    animation: ciclo_3 50s linear infinite;     
  22. }
  23. #imagen.anim_4 {
  24.    animation: ciclo_4 50s linear infinite;     
  25. }
  26. #imagen.anim_5 {
  27.    animation: ciclo_5 50s linear infinite;     
  28. }
  29. @keyframes ciclo_1 {
  30.    0%  { opacity:0; }
  31.    5%  { opacity:1; }
  32.    20% { opacity:1; }
  33.    25% { opacity:0; }
  34.   100% { opacity:0; }
  35. }
  36. @keyframes ciclo_2 {
  37.    0%  { opacity: 0; }
  38.    20% { opacity: 0; }
  39.    25% { opacity: 1; }
  40.    40% { opacity: 1; }
  41.    45% { opacity: 0; }
  42.    100%{ opacity: 0; }
  43. }
  44. @keyframes ciclo_3 {
  45.    0%  { opacity: 0; }
  46.    40% { opacity: 0; }
  47.    45% { opacity: 1; }
  48.    60% { opacity: 1; }
  49.    65% { opacity: 0; }
  50.    100%{ opacity: 0; }
  51. }
  52. @keyframes ciclo_4 {
  53.    0%  { opacity: 0; }
  54.    60% { opacity: 0; }
  55.    65% { opacity: 1; }
  56.    80% { opacity: 1; }
  57.    85% { opacity: 0; }
  58.    100%{ opacity: 0; }
  59. }
  60. @keyframes ciclo_5 {
  61.    0%  { opacity: 0; }
  62.    80% { opacity: 0; }
  63.    85% { opacity: 1; }
  64.    95% { opacity: 1; }
  65.    100%{ opacity: 0; }
  66. }
  67.  
  68. </head>
  69.     <img id="imagen" class="anim_1" src="uno.jpg">
  70.     <img id="imagen" class="anim_2" src="dos.jpg">
  71.     <img id="imagen" class="anim_3" src="tres.jpg">
  72.     <img id="imagen" class="anim_4" src="cuatro.jpg">
  73.     <img id="imagen" class="anim_5" src="cinco.jpg">
  74. </body>
  75. </html>
  #9 (permalink)  
Antiguo 11/07/2013, 18:19
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: animacion css3 en internet explorer 10

Gracias por compartirlo.

Si quieres tener algo más limpio (DRY), podrías usar la misma animación, la misma declaración keyframes, e indicar en cada animación un animation-delay:

Código CSS:
Ver original
  1. #imagen.anim_1 {
  2.    animation: ciclo 10s linear infinite;      
  3. }
  4. #imagen.anim_2 {
  5.    animation: ciclo 10s linear infinite 10s;
  6. }
  7. #imagen.anim_3 {
  8.    animation: ciclo 10s linear infinite 20s;
  9. }
  10. #imagen.anim_4 {
  11.    animation: ciclo 10s linear infinite 30s;
  12. }
  13. #imagen.anim_5 {
  14.    animation: ciclo 10s linear infinite 40s;
  15. }
  16.  
  17. @keyframes ciclo {
  18.    0%  { opacity: 0; }
  19.    20% { opacity: 1; }
  20.    80% { opacity: 1; }
  21.   100% { opacity: 0; }
  22. }
  #10 (permalink)  
Antiguo 12/07/2013, 10:29
src
 
Fecha de Ingreso: julio-2013
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: animacion css3 en internet explorer 10

Gracias Pzin, la modificación que me propones funciona bien solo en la primer iteración del ciclo completo. A partir de la segunda iteración las cinco imágenes cambian de opacidad 0 a 1 y viceversa al mismo tiempo y solo permanece visible la imagen cinco (cinco.jpg). Esto se debe a que el animation-delay retrasa el inicio de la animación solo para la primera iteración, a partir de ese punto todas las animaciones se ejecutan al mismo tiempo.
En el código que publiqué controlo manualmente el momento de inicio de la animación para cada una de las imágenes al indicar en los puntos porcentuales el momento de cambiar la opacidad para cada imagen.
  #11 (permalink)  
Antiguo 12/07/2013, 11:01
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: animacion css3 en internet explorer 10

Cita:
Iniciado por src Ver Mensaje
Esto se debe a que el animation-delay retrasa el inicio de la animación solo para la primera iteración, a partir de ese punto todas las animaciones se ejecutan al mismo tiempo.
No, animation-delay retrasa el inicio de la animación, luego los ciclos son iguales, pero siempre con ese retraso. Aquí un ejemplo: http://codepen.io/anon/pen/nKsxt

Se puede hacer con la misma declaración de keyframes lo que quieres hacer, lo único que hay que pensar un poco para justarlo.
  #12 (permalink)  
Antiguo 13/07/2013, 10:39
src
 
Fecha de Ingreso: julio-2013
Mensajes: 11
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: animacion css3 en internet explorer 10

Nuevamente gracias pzin por tomarte el tiempo para corregir mis errores y ayudarme a aprender. Aquí dejo el código más limpio, tal y como me sugeriste.

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. body{
  3. background: #CFF;
  4. }
  5. #imagen {
  6. width: 200px;
  7. height: 200px;
  8. position: absolute;
  9. top: 0px;
  10. left: 0px;
  11. opacity:0;
  12. }
  13.  
  14. #imagen.anim_1 {
  15.    animation: ciclo 50s linear infinite;       
  16. }
  17. #imagen.anim_2 {
  18.    animation: ciclo 50s linear infinite 10s;
  19. }
  20. #imagen.anim_3 {
  21.    animation: ciclo 50s linear infinite 20s;
  22. }
  23. #imagen.anim_4 {
  24.    animation: ciclo 50s linear infinite 30s;
  25. }
  26. #imagen.anim_5 {
  27.    animation: ciclo 50s linear infinite 40s;
  28. }
  29. @keyframes ciclo {
  30.    0%  { opacity:0; }
  31.    5%  { opacity:1; }
  32.    20% { opacity:1; }
  33.    25% { opacity:0; }
  34.   100% { opacity:0; }
  35. }
  36.  
  37. </head>
  38.     <img id="imagen" class="anim_1" src="uno.jpg">
  39.     <img id="imagen" class="anim_2" src="dos.jpg">
  40.     <img id="imagen" class="anim_3" src="tres.jpg">
  41.     <img id="imagen" class="anim_4" src="cuatro.jpg">
  42.     <img id="imagen" class="anim_5" src="cinco.jpg">
  43. </body>
  44. </html>

Etiquetas: css3
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:56.