Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/03/2015, 19:11
Avatar de fede5426
fede5426
 
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 9 años, 5 meses
Puntos: 208
Respuesta: Ocultar y mostrar panel

Primero que nada agregarle los href="#" a los enlaces Solucion y Comentarios, sino no te lo reconoce como enlace.

Lo que hay que hacer es agregarle un id a solucion y otro a comentarios, con CSS darles un display none para hacerlos desaparecer, y despues con jquery indicamos que cuando le demos click a Solucion, se abra su respectivo contenedor y cierre el de comentarios en caso que este abierto. Y de igual manera para Comentario.

Código HTML:
Ver original
  1. <a href="#" id="btn_solucion">Solucion</a>
  2. <a href="#" id="btn_comentario">Comentario</a>
  3.  
  4. <div id="solucion>
  5.    ...
  6.    ...
  7. </div>
  8.  
  9. <div id="comentario>
  10.    ...
  11.    ...
  12. </div>

Código CSS:
Ver original
  1. #solucion, #comentario{
  2.    display:none;
  3. }

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.  
  3.   $("#btn_solucion").click(function(){
  4.     $("#solucion").slideToggle(200);
  5.     $("#comentario").slideUp(200);
  6.   });
  7.  
  8.   $("#btn_comentario").click(function(){
  9.     $("#comentario").slideToggle(200);
  10.     $("#solucion").slideUp(200);
  11.   });
  12.  
  13. });


Ejemplo completo con tu html:

http://codepen.io/anon/pen/PwxOyP

Tanto el slideToggle como el slideUp los podes suplantar con cualquier otro efecto de aparición y desaparición.. fadeIn y fadeOut por ejemplo..

Lo bueno del toggle es que reconoce en que estado está el elemento, si está oculto lo muestra y si está visible lo oculta.

Se podria usar show(); para mostrar y hide(); para ocultar, pero quise hacer que la transición sea menos brusca :P

Saludos

Agrego:

Los divs #solucion y #comentario, al aparecer van a empujar el resto del contenido de la pagina hacia abajo..

Si no te gusta ese comportamiento solamente agrega position absolute a ambos.

Última edición por fede5426; 16/03/2015 a las 19:35