Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] Retraso efecto :hover al aplicar animation

Estas en el tema de Retraso efecto :hover al aplicar animation en el foro de CSS en Foros del Web. Hola de nuevo gentes, vengo a contaros mi problema... Recientemente he creado una plantilla para jugar con el CSS3 y sus animaciones, y resulta que, ...
  #1 (permalink)  
Antiguo 30/01/2013, 20:27
 
Fecha de Ingreso: noviembre-2011
Ubicación: Sevilla
Mensajes: 48
Antigüedad: 13 años
Puntos: 1
Pregunta Retraso efecto :hover al aplicar animation

Hola de nuevo gentes, vengo a contaros mi problema...

Recientemente he creado una plantilla para jugar con el CSS3 y sus animaciones, y resulta que, al menos en mi PC, existe un delay en los :hover de los enlaces si añado un fondo dinámico.

URL: http://www.dacode.es/exp/danceandclub.html

Intento explicarme mejor;

La web funciona, pero al pasar el ratón encima del menú (LOCALIZACIÓN, LA SALA...) debería cambiar de color al instante pero lo hace 1 segundo o medio segundo después... Es mínimo pero es molesto...

Si elimino del archivo "demo.css" la animación "animation: imageAnimation 36s linear infinite 0s;" con todos sus pre-fix desaparece el delay y cambia instantáneo como cualquier enlace...

¿Es de mi PC o se puede mejorar el código?

También me pasa en el portátil, por eso pregunto.

PC: 2GB Ram, DualCore 1.8Ghz, 512MB gráfica, 8 años.
Portátil: 3GB Ram, DualCore 2Ghz, Tarjeta gráfica Intel GMA HM55 Express Chipset con 64 MB dedicados hasta 1,2 Gb, 3 años.
  #2 (permalink)  
Antiguo 30/01/2013, 21:38
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 10 meses
Puntos: 306
Respuesta: Retraso efecto :hover al aplicar animation

En el ejemplo que pones has eliminado el código que las animaciones, tal vez deberías ponerlo otra vez para que podamos ver el problema
Saludos
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--
  #3 (permalink)  
Antiguo 31/01/2013, 06:39
 
Fecha de Ingreso: noviembre-2011
Ubicación: Sevilla
Mensajes: 48
Antigüedad: 13 años
Puntos: 1
Respuesta: Retraso efecto :hover al aplicar animation

Si está el código de la animación, pero en otra hoja de estilo, concretamente en esta;

http://www.dacode.es/exp/danceandclub/css/demo.css

Ahí podéis ver el código que anima el fondo! Si necesitáis más info sólo decirlo!
  #4 (permalink)  
Antiguo 31/01/2013, 08:04
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: Retraso efecto :hover al aplicar animation

Mirándolo por encima, diría que se debe a ese ease-in.
  #5 (permalink)  
Antiguo 07/02/2013, 16:29
 
Fecha de Ingreso: noviembre-2011
Ubicación: Sevilla
Mensajes: 48
Antigüedad: 13 años
Puntos: 1
Respuesta: Retraso efecto :hover al aplicar animation

Hola Bonez, he probado a eliminar esa propiedad pero aún así sigue sin funcionar... ¿Alguna otra sugerencia?
  #6 (permalink)  
Antiguo 07/02/2013, 17:09
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: Retraso efecto :hover al aplicar animation

El retraso seguramente se deba a que al ser una animación larga y, aunque quites ease-in, siga tardando en empezar ya que el valor por defecto es ease. Prueba con ease-out o con cubic-bezier() —que necesitarás ajustarlo según necesites.

No he mirado el código ahora —estoy con un "dispotivo móvil"— pero recuerdo que era una animación larga.
  #7 (permalink)  
Antiguo 07/02/2013, 21:03
 
Fecha de Ingreso: noviembre-2011
Ubicación: Sevilla
Mensajes: 48
Antigüedad: 13 años
Puntos: 1
Respuesta: Retraso efecto :hover al aplicar animation

Si, es una animación larga, de 6 segundos, pero en teoría no afecta a los enlaces, sólo a las imágenes de fondo con la ID #imagen1, 2, 3...

<div class="fija">
<div class="movimiento" id="imagen1"></div>
<div class="movimiento" id="imagen2"></div>
[...]
</div>

También he probado el ease-out y sigue igual, yo me decanto por una sobrecarga de la web, o algún bucle en el código :-/
  #8 (permalink)  
Antiguo 08/02/2013, 04:07
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: Retraso efecto :hover al aplicar animation

Estaba mirando el enlace y no encuentro nada de animaciones en enlaces.
  #9 (permalink)  
Antiguo 08/02/2013, 06:51
 
Fecha de Ingreso: noviembre-2011
Ubicación: Sevilla
Mensajes: 48
Antigüedad: 13 años
Puntos: 1
Respuesta: Retraso efecto :hover al aplicar animation

Exáctamente, porque no debe haberlas. Es decir, no he animado los enlaces de ninguna forma -al menos directamente que yo sepa- y sin embargo se produce ese delay en el :hover

la única propiedad del :hover es un cambio de color no creo que esté ahí el problema, todo viene cuando inserto la animación de las imágenes de background..

Código:
Si elimino estas líneas desaparece el error, pero no funciona, evidentemente, la animación del fondo.
.movimiento {
    -webkit-animation: imageAnimation 24s linear infinite 0s;
    -moz-animation: imageAnimation 24s linear infinite 0s;
    -o-animation: imageAnimation 24s linear infinite 0s;
    -ms-animation: imageAnimation 24s linear infinite 0s;
    animation: imageAnimation 24s linear infinite 0s;
}
que activa esta animación..

Código:
@keyframes imageAnimation { 
	0% {
	    opacity: 0;
	    animation-timing-function: ease-in;
	}
	8% {
	    opacity: 1;
	    transform: scale(1.05) rotate(3deg);
	    animation-timing-function: ease-out;
	}
	17% {
	    opacity: 1;
	    transform: scale(1.1) rotate(3deg);
	}
	25% {
	    opacity: 0;
	    transform: scale(1.1) rotate(3deg);
	}
	100% { opacity: 0 }
}
en este elemento...

Código:
<div class="fija">
    <div class="movimiento" id="imagen1"></div>
    <div class="movimiento" id="imagen2"></div>
    [...]
</div>
  #10 (permalink)  
Antiguo 08/02/2013, 08:58
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: Retraso efecto :hover al aplicar animation

A mi el color de los enlaces me cambia enseguida.

Probé con Chrome, Safari y Firefox desde Mac.
  #11 (permalink)  
Antiguo 08/02/2013, 09:10
 
Fecha de Ingreso: febrero-2013
Ubicación: Sevilla
Mensajes: 4
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Retraso efecto :hover al aplicar animation

¿Por qué has puesto 24s de delay? Eso hace que tarde 24 segundos en hacer la animación...
  #12 (permalink)  
Antiguo 08/02/2013, 12:19
 
Fecha de Ingreso: noviembre-2011
Ubicación: Sevilla
Mensajes: 48
Antigüedad: 13 años
Puntos: 1
Respuesta: Retraso efecto :hover al aplicar animation

Cita:
Iniciado por Bonez Ver Mensaje
A mi el color de los enlaces me cambia enseguida.

Probé con Chrome, Safari y Firefox desde Mac.
Vale, entonces será una sobrecarga con la que mi PC no puede.


Cita:
Iniciado por Bolverkr Ver Mensaje
¿Por qué has puesto 24s de delay? Eso hace que tarde 24 segundos en hacer la animación...
24s de duración de la animación, porque son 4 imágenes animadas a 6 segundos cada una, de modo que se repite infinitas veces cada 24s
  #13 (permalink)  
Antiguo 08/02/2013, 12:47
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: Retraso efecto :hover al aplicar animation

A ver si alguien más puede confirmar que va bien.

En caso de otro diagnóstico favorable, jubila la PCra.
  #14 (permalink)  
Antiguo 09/02/2013, 08:09
Avatar de twilvaro  
Fecha de Ingreso: febrero-2012
Ubicación: La Línea (Cádiz)
Mensajes: 47
Antigüedad: 12 años, 9 meses
Puntos: 5
Respuesta: Retraso efecto :hover al aplicar animation

Confirmo que los :hover de los enlaces no tienen ningún tipo de delay.

Un saludo y bonito trabajo.
  #15 (permalink)  
Antiguo 24/02/2013, 19:00
 
Fecha de Ingreso: noviembre-2011
Ubicación: Sevilla
Mensajes: 48
Antigüedad: 13 años
Puntos: 1
Respuesta: Retraso efecto :hover al aplicar animation

Cita:
Iniciado por twilvaro Ver Mensaje
Confirmo que los :hover de los enlaces no tienen ningún tipo de delay.

Un saludo y bonito trabajo.
Gracias!
  #16 (permalink)  
Antiguo 24/02/2013, 22:36
Avatar de pportables  
Fecha de Ingreso: marzo-2010
Mensajes: 91
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Retraso efecto :hover al aplicar animation

Oh qué interesante ese efecto que colocaste en el fondo cambiándolo, cómo es eso? cómo lo hiciste? Saludos.

PD: Con respecto a tu tema veo que no tiene retraso en los botones, al menos en mi navegador.
  #17 (permalink)  
Antiguo 25/02/2013, 04:46
 
Fecha de Ingreso: octubre-2010
Ubicación: La Plata
Mensajes: 63
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Retraso efecto :hover al aplicar animation

a mi tmb se me ve bien. y me gusto mucho el efecto de las imagenes del fondo. Se puede saber tu secreto? ;)
  #18 (permalink)  
Antiguo 25/02/2013, 09:17
 
Fecha de Ingreso: noviembre-2011
Ubicación: Sevilla
Mensajes: 48
Antigüedad: 13 años
Puntos: 1
Respuesta: Retraso efecto :hover al aplicar animation

Gracias por los comentarios!

Básicamente se trata de de una serie de imágenes que van desapareciendo al tamaño de la pantalla y con un z-index bajo, pongo el código;

Primero creas el "wrap" que contendrá las imágenes.

Código HTML:
<div class="fija">
    <div class="movimiento" id="imagen1"></div>
    <div class="movimiento" id="imagen2"></div>
    <div class="movimiento" id="imagen3"></div>
    <div class="movimiento" id="imagen4"></div>
</div> 
Y se le aplica el tamaño y la posición

Código CSS:
Ver original
  1. .fija {
  2.     position: fixed;
  3.     width: 100%;
  4.     height: 100%;
  5.     top: 0px;
  6.     left: 0px;
  7.     z-index: 0;
  8. }
  9. .movimiento {
  10.     min-width: 100%;
  11.     min-height: 100%;
  12.     position: absolute;
  13.     top: 0px;
  14.     left: 0px;
  15.     opacity:0;
  16.     z-index: 90;
  17. /* Este z-index puede ser un error en el resto de mi código, quizás sea opcional para vosotros */
  18.     background-size:cover;
  19. /* Se le aplica la animación que determinará el movimiento y la opacidad de las imágenes */
  20.     -webkit-animation: imageAnimation 24s linear infinite 0s;
  21.     -moz-animation: imageAnimation 24s linear infinite 0s;
  22.     -o-animation: imageAnimation 24s linear infinite 0s;
  23.     -ms-animation: imageAnimation 24s linear infinite 0s;
  24.     animation: imageAnimation 24s linear infinite 0s;  
  25. /* La duración de la animación dependerá de la cantidad de imágenes que uséis, yo he usado 4 a 6 segundos cada una */
  26. }

Se aplican los id para las imágenes y el delay para la animación (así no se aplica la animación a todas a la vez, sino que va afectando una a una y en orrden

Código CSS:
Ver original
  1. #imagen1 {
  2.     background-image:url(http://blog.razorsanddiapers.com/wp-content/uploads/2012/10/concert.jpg);
  3. }
  4. #imagen2 {
  5.     background-image:url(http://www.downloadfreebackgrounds.net/backgrounds/night-party-club-background.jpg);
  6.     -webkit-animation-delay: 6s;
  7.     -moz-animation-delay: 6s;
  8.     -o-animation-delay: 6s;
  9.     -ms-animation-delay: 6s;
  10.     animation-delay: 6s;
  11. }
  12. #imagen3 {
  13.     background-image:url(http://www.newcaspics.info/wp-content/uploads/wallpaper-for-macbook-air-13_2727_1.jpg);
  14.     -webkit-animation-delay: 12s;
  15.     -moz-animation-delay: 12s;
  16.     -o-animation-delay: 12s;
  17.     -ms-animation-delay: 12s;
  18.     animation-delay: 12s;
  19. }
  20. #imagen4 {
  21.     background-image:url(http://www.downloadfreebackgrounds.net/backgrounds/night-party-club-background.jpg);
  22.     -webkit-animation-delay: 18s;
  23.     -moz-animation-delay: 18s;
  24.     -o-animation-delay: 18s;
  25.     -ms-animation-delay: 18s;
  26.     animation-delay: 18s;
  27. }

Y la animación con todos sus prefijos

Código CSS:
Ver original
  1. @-webkit-keyframes imageAnimation {
  2.     0% {
  3.         opacity: 0;
  4.         -webkit-animation-timing-function: ease-in;
  5.     }
  6.     8% {
  7.         opacity: 1;
  8.         -webkit-transform: scale(1.05) rotate(1deg);
  9.         -webkit-animation-timing-function: ease-out;
  10.     }
  11.     17% {
  12.         opacity: 1;
  13.         -webkit-transform: scale(1.1) rotate(2deg);
  14.     }
  15.     25% {
  16.         opacity: 0;
  17.         -webkit-transform: scale(1.1) rotate(3deg);
  18.     }
  19.     100% { opacity: 0; }
  20. }
  21.  
  22. @-moz-keyframes imageAnimation {
  23.     0% {
  24.         opacity: 0;
  25.         -moz-animation-timing-function: ease-in;
  26.     }
  27.     8% {
  28.         opacity: 1;
  29.         -moz-transform: scale(1.05) rotate(3deg);
  30.         -moz-animation-timing-function: ease-out;
  31.     }
  32.     17% {
  33.         opacity: 1;
  34.         -moz-transform: scale(1.1) rotate(3deg);
  35.     }
  36.     25% {
  37.         opacity: 0;
  38.         -moz-transform: scale(1.1) rotate(3deg);
  39.     }
  40.     100% { opacity: 0 }
  41. }
  42. @-o-keyframes imageAnimation {
  43.     0% {
  44.         opacity: 0;
  45.         -o-animation-timing-function: ease-in;
  46.     }
  47.     8% {
  48.         opacity: 1;
  49.         -o-transform: scale(1.05) rotate(3deg);
  50.         -o-animation-timing-function: ease-out;
  51.     }
  52.     17% {
  53.         opacity: 1;
  54.         -o-transform: scale(1.1) rotate(3deg);
  55.     }
  56.     25% {
  57.         opacity: 0;
  58.         -o-transform: scale(1.1) rotate(3deg);
  59.     }
  60.     100% { opacity: 0 }
  61. }
  62. @-ms-keyframes imageAnimation {
  63.     0% {
  64.         opacity: 0;
  65.         -ms-animation-timing-function: ease-in;
  66.     }
  67.     8% {
  68.         opacity: 1;
  69.         -ms-transform: scale(1.05) rotate(3deg);
  70.         -ms-animation-timing-function: ease-out;
  71.     }
  72.     17% {
  73.         opacity: 1;
  74.         -ms-transform: scale(1.1) rotate(3deg);
  75.     }
  76.     25% {
  77.         opacity: 0;
  78.         -ms-transform: scale(1.1) rotate(3deg);
  79.     }
  80.     100% { opacity: 0 }
  81. }
  82. @keyframes imageAnimation {
  83.     0% {
  84.         opacity: 0;
  85.         animation-timing-function: ease-in;
  86.     }
  87.     8% {
  88.         opacity: 1;
  89.         transform: scale(1.05) rotate(3deg);
  90.         animation-timing-function: ease-out;
  91.     }
  92.     17% {
  93.         opacity: 1;
  94.         transform: scale(1.1) rotate(3deg);
  95.     }
  96.     25% {
  97.         opacity: 0;
  98.         transform: scale(1.1) rotate(3deg);
  99.     }
  100.     100% { opacity: 0 }
  101. }

Espero que os haya servido, , avisar si tenéis dudas y para los que entiendan de esto, seguro que hay algún fallo o alguna línea que sobra, pero a mi me funciona así xD
  #19 (permalink)  
Antiguo 25/02/2013, 10:58
Avatar de pportables  
Fecha de Ingreso: marzo-2010
Mensajes: 91
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Retraso efecto :hover al aplicar animation

Gracias, luego veré si lo puedo implementar a Blogger, ojalá que se pueda. Saludos.

Etiquetas: css3, dinamico, efecto, hover
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 20:18.