Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/03/2010, 06:07
Dany_s
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 15 años
Puntos: 65
Respuesta: animate() de Jquery

En realidad no es que el div crece para arriba o para abajo, lo que hace es cambiar el tamaño, para lograrla apariencia que buscas podes colocar un div que sea el botón abajo del div que crece.

El código está bien pero si usas animate sólo para cambiar el tamaño del div podés usar slideDown y slideUp
esto
$("#boton1,#boton2,#boton3,#boton4,#boton5,#boton6 ")
podés cambiar por
$(#contenedor>div)
imaginate si ya no queres que se llamen botonN sino botoncitoN tendrías que cambiar en cada uno de los selectores en jquery jeje que se yo si por ahi se da esa posibilidad

Código Javascript:
Ver original
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.   <script src="http://code.jquery.com/jquery-latest.js"></script>
  5.   <script>
  6.     $(document).ready( function (){
  7.         $(".cont").slideUp(0);
  8.             $(".boton").click( function () {
  9.                 $('.activo').removeClass('activo').slideUp(500);
  10.                 $(this).parent().find('.cont').addClass('activo').slideDown(500);
  11.             });
  12.     });
  13.   </script>
  14.   <style>
  15.       .boton{background-color:red; }
  16.       .cont{background-color:blue; }
  17.   </style>
  18. </head>
  19. <body>
  20.     <div id="contenedor">
  21.  
  22.         <div class="bloque">
  23.             <div class="cont">11111<br />1111111<br />111111</div>
  24.             <div class="boton">Boton1</div>
  25.         </div>
  26.  
  27.         <div class="bloque">
  28.             <div class="cont">22222<br />222222<br />222222</div>
  29.             <div class="boton">Boton2</div>
  30.         </div>
  31.  
  32.         <div class="bloque">
  33.             <div class="cont">333333<br />333333<br />33333</div>
  34.             <div class="boton">Boton3</div>
  35.         </div>
  36.  
  37.         <div class="bloque">
  38.             <div class="cont">4444444<br />444444<br />44444</div>
  39.             <div class="boton">Boton4</div>
  40.         </div>
  41.  
  42.         <div class="bloque">
  43.             <div class="cont">5555<br />55555<br />5555555</div>
  44.             <div class="boton">Boton5</div>
  45.         </div>
  46.  
  47.         <div class="bloque">
  48.             <div class="cont">6666666<br />666666<br />66666666</div>
  49.             <div class="boton">Boton6</div>
  50.         </div>
  51.  
  52.     </div>
  53. </body>
  54. </html>

lo que hago es

primero cierro los div con clase cont
$(".cont").slideUp(0);

uso un evento click en los div con clase boton

busco div que tenga clase 'activo', elimino la clase 'activo' y lo cierro
$('.activo').removeClass('activo').slideUp(500);

del boton que se hizo click voy al padre y busco el div con clase 'cont' y le agrego la clase 'activo', por último lo abro
$(this).parent().find('.cont').addClass('activo'). slideDown(500);

y listo

Última edición por Dany_s; 11/03/2010 a las 06:13