Foros del Web » Programando para Internet » Jquery »

Duda con css en jQuery

Estas en el tema de Duda con css en jQuery en el foro de Jquery en Foros del Web. Hola, buenas tardes! Tengo una duda al tratar de usar una instrucción de css en jQuery. Les explico: Estoy tratando de hacer un pequeño menú ...
  #1 (permalink)  
Antiguo 22/03/2018, 16:38
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Duda con css en jQuery

Hola, buenas tardes!

Tengo una duda al tratar de usar una instrucción de css en jQuery. Les explico:

Estoy tratando de hacer un pequeño menú manejado por pestañas, tab1, tab2, tab3, por ejemplo, y cada que le den click a alguna cambia un div con la información pertinente a cada una de estas. Para ello uso lo siguiente:

Código Javascript:
Ver original
  1. $(".tab1").click( function(e){
  2.     $(".box1").css({"display":"inline","transition-duration":"1s"});
  3.         $(".box2, .box3").css("display","none");
  4. }
  5.  
  6. $(".tab2").click( function(e){
  7.     $(".box2").css({"display":"inline","transition-duration":"1s"});
  8.         $(".box1, .box3").css("display","none");
  9. }
  10.  
  11. $(".tab3").click( function(e){
  12.     $(".box3").css({"display":"inline","transition-duration":"1s"});
  13.         $(".box1, .box2").css("display","none");
  14. }

Sin embargo, aunque si cambian los contenidos, no se muestra el efecto de la transición "transition-duration : 1s".

Me he dado cuenta que siempre que uso "display", esta no funciona, pero en otro casos si la he podido usar. ¿Alguna razón del por qué?

¡Saludos y de antemano gracias por sus comentarios!
  #2 (permalink)  
Antiguo 22/03/2018, 17:48
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Duda con css en jQuery

En este enlace puedes ver una lista de propiedades CSS que pueden ser afectadas por el efecto de transición. Como podrás ver, la propiedad display no aparece.

Off-topic:

Aunque es un tema netamente de CSS y no de jQuery o, para referirnos al lenguaje, de JavaScript, te aconsejo que trabajes con la propiedad opacity. Lo que suelo hacer es lo siguiente:

Para mostrar al elemento:

1. Le aplico el par atributo-valor display: {block, inline, inline-block, etc.};.
2. Le asigno el valor 1 al atributo opacity.

Para ocultar al elemento:

1. Le asigno el valor 0 al atributo opacity.
2. Usando un temporizador, establezco el mismo tiempo del valor del atributo de transición pero en milésimas de segundo (así trabaja el temporizador) y, en la función que ejecutará al completarse el tiempo, establezco el par atributo-valor display: none;.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 23/03/2018, 10:20
Avatar de Middrel  
Fecha de Ingreso: abril-2005
Mensajes: 835
Antigüedad: 19 años
Puntos: 27
Respuesta: Duda con css en jQuery

¡Hola Alexis88! Gracias por responder!

Si, ahora que veo no puedo usar la transición con display por medio de JQuery, lástima...

Voy a intentar usar opacity y te comento :D

Saludos!!

Etiquetas: css
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 11:21.