Foros del Web » Creando para Internet » CSS »

Aplicar transition a partir de otro elemento.

Estas en el tema de Aplicar transition a partir de otro elemento. en el foro de CSS en Foros del Web. Buenas compis! pues la duda la verdad es bastante simple pero no sé como solucionarlo. Tengo lo siguiente: Código: .header-ul{ display:block; float:left; margin:0; padding:0; z-index:100; ...
  #1 (permalink)  
Antiguo 12/09/2014, 05:39
Avatar de RAZGRIZ24  
Fecha de Ingreso: septiembre-2009
Mensajes: 143
Antigüedad: 14 años, 7 meses
Puntos: 2
Aplicar transition a partir de otro elemento.

Buenas compis! pues la duda la verdad es bastante simple pero no sé como solucionarlo. Tengo lo siguiente:

Código:
.header-ul{
	display:block;
	float:left;
	margin:0;
	padding:0;
	z-index:100;
	position:relative;
}
[...]
.header-li{
	list-style:none;
	display:none;
	z-index:100;
}
[...]
ul.header-ul:hover li{
	display:block;
}
El problema lo tengo con el fragmento de código que os estoy mostrando, como veis en la última regla, cambio el display del li. Eso es correcto, pero querría que ese display tuviera una transición (o un retraso, la verdad es que aún tengo que probar ambos efectos) de 0.5s al situar el ratón sobre el elemento 'ul'

Es la primera vez que busco hacer un transition a partir de otro elemento ¿Cómo puedo hacerlo?
  #2 (permalink)  
Antiguo 12/09/2014, 10:49
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: Aplicar transition a partir de otro elemento.

Podrías hacerlo con:

Código CSS:
Ver original
  1. .header-ul:hover .header-li {
  2.   transition-delay: .5s;
  3. }

Pero no te va a funcionar, ya que no se pueden hacer transiciones si el elemento cambia a display: none. Tendrás que jugar visibility, opacity o incluso hacer alguna otra cosa, dependiendo de qué quieras hacer exactamente.
__________________
(:
  #3 (permalink)  
Antiguo 13/09/2014, 03:56
Avatar de RAZGRIZ24  
Fecha de Ingreso: septiembre-2009
Mensajes: 143
Antigüedad: 14 años, 7 meses
Puntos: 2
Respuesta: Aplicar transition a partir de otro elemento.

Cita:
Iniciado por pzin Ver Mensaje
Podrías hacerlo con:

Código CSS:
Ver original
  1. .header-ul:hover .header-li {
  2.   transition-delay: .5s;
  3. }

Pero no te va a funcionar, ya que no se pueden hacer transiciones si el elemento cambia a display: none. Tendrás que jugar visibility, opacity o incluso hacer alguna otra cosa, dependiendo de qué quieras hacer exactamente.
Bueno pues puedo jugar con visibility y transition-delay, no tengo mayor problema con eso la verdad.

Pero sí querría saber cómo, mediante css, hacer la transición de "li" cuándo realizo el hover sobre "ul"
  #4 (permalink)  
Antiguo 13/09/2014, 21:09
 
Fecha de Ingreso: septiembre-2014
Ubicación: Rosario, Santa Fe
Mensajes: 10
Antigüedad: 9 años, 7 meses
Puntos: 3
Respuesta: Aplicar transition a partir de otro elemento.

Cambia el header-li a display: block;.
Agregale opacity: 0; y filter: alpha(opacity=0);

Ahí ya lo vas a tener en invisibles aunque te van a ocupar lugar, podés hacer un position: absolute; para que no aparezca en el lugar donde están, ya que estará flotando.

Allí al final, en el hover, le aplicás opacity: 1.0; y filter: alpha(opacity=100);

Entonces te quedaría:
Código CSS:
Ver original
  1. .header-li{
  2.     list-style:none;
  3.     display: block;
  4.     z-index:100;
  5.         opacity: 0;
  6.        filter: alpha(opacity: 0);
  7.        position: absolute;
  8.        -webkit-transition: opacity 0.5s 0.5s linear; /* Esto va a ser que tarde 500ms en activarse  y 500ms entre que va cambiando de opacidad 0 a opacidad 100. El primer valor es el tiempo de transición, el segundo es el delay. */
  9.        -moz-transition: opacity 0.5s 0.5s linear;
  10.        transition: opacity 0.5s 0.5s linear;
  11. }
  12. [...]
  13. ul.header-ul:hover > ul.header-li{
  14.     opacity: 1.0;
  15.        filter: alpha(opacity=100);
  16. }

No lo probé pero casi seguro que funciona bien, igualmente espero tu respuesta :D

Etiquetas: 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 16:23.