Div plegable/desplegable

Escrito por Elías el 4 de Octubre de 2007

Otro de los efectos que están pegando bastante últimamente es el de poder mostrar información en un div que podamos desplegar o contraer con un botón, muy practico, simple de aplicar y con un resultado visual bastante bueno. En dynamic drive han hecho una librería para conseguir este fin, vamos a ver aquí como funciona explicándolo en la lengua de Cervantes. Una DEMO para ver los resultados.

Lo primero creamos una carpeta con el nombre divplegable (o el que cada uno quiera) dentro de la cual hacemos otra de nombre js y descargamos la librería (usar botón derecho “guardar enlace como”). Cuando la tengamos la movemos a su carpeta, la que hemos llamado js. Creamos un archivo .html y lo guardamos en la carpeta divplegable.

Dentro del html las primeras líneas que añadiremos serán para llamar la librería e indicamos un doctype strict:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<script type="text/javascript" src="js/animatedcollapse.js">
/***********************************************
* Animated Collapsible DIV- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more
***********************************************/
</script>

Para hacer funcionar la librería, el sistema siempre es el mismo y tenemos tres opciones: que la caja tenga un botón para desplegar y otro para contraer, que con el mismo botón se hagan las dos acciones y que el cajón se muestre desplegado desde un principio con la opción de poder contraerlo y desplegarlo.

Dos botones, uno para desplegar y otro para contraer:

<p><b>Ejemplo 1:</b></p>
<a href="javascript:collapse1.slidedown()">Despliega</a> || <a href="javascript:collapse1.slideup()">Contrae</a>
<div id="dog" style="width: 300px; height: 110px; background-color: #97bf21;">
<!--Your DIV content as follows -->
<p>Lorem ipsum dolorem incorrupte te mei, quo no eius docendi. Euripidis rationibus comprehensam cu has, ut sed ignota tritani,</p>
</div>
<script type="text/javascript">
var collapse1=new animatedcollapse("dog", 1000, false)
</script>

De estas líneas lo interesante es href=”javascript:collapse1.slidedown()” con la que se hace el botón para desplegar y con href=”javascript:collapse1.slideup()” para el botón contraer. Seguido se crea el div al que se le da un ID que será la que luego pasaremos al script para hacer el efecto. También es importante darle un alto con height que será el largo del div cuando se despliegue. El script que está justo debajo del div es el encargado de lanzar la librería y su sintaxis siempre es la misma: se le pasa el nombre de la variable única (en este caso collapse1), se hace un nuevo slide y se le pasa el ID del div. El numero es la velocidad con la que se contraerá/desplegará el div y el ultimo parámetro puede ser true o false pero sinceramente no se que hace exactamente.

Un único botón para desplegar y contraer:

<p><b>Ejemplo 2:</b></p>
<a href="javascript:collapse2.slideit()">Despliega/Contrae</a>
<div id="cat" style="width: 300px; background-color: #97bf21;">
<div style="padding: 0 5px">
<h3>Titulo</h3>
<p>Lorem ipsum dolorem incorrupte te mei, quo no eius docendi. Euripidis rationibus comprehensam cu has, ut sed ignota tritani, hinc habeo euripidis et mea. An porro putent mentitum vis, elit nostrum te sed, per eu cibo magna propriae. Sed cu iudico voluptaria, te usu nemore officiis partiendo.</p>
</div>
</div>
<script type="text/javascript">
var collapse2=new animatedcollapse("cat", 800, true)
</script>

Todo igual que en el caso anterior, solamente cambiamos la función href=”javascript:collapse2.slideit()” que sirve para poder contraer y desplegar con un solo botón.

Cajón desplegado desde un principio con opción desplegar/contraer:

<p><b>Ejemplo 3:</b></p>
<a href="javascript:collapse3.slidedown()">Despliega</a> || <a href="javascript:collapse3.slideup()">Contrae</a>
<div id="fish" style="width: 300px; height: 150px; background-color: #97bf21;">
<p>Lorem ipsum dolorem incorrupte te mei, quo no eius docendi. Euripidis rationibus comprehensam cu has, ut sed ignota tritani, hinc habeo euripidis et mea. An porro putent mentitum vis, elit nostrum te sed, per eu cibo magna propriae. Sed cu iudico voluptaria, te usu nemore officiis partiendo.</p>
</div>
<script type="text/javascript">
var collapse3=new animatedcollapse("fish", 300, false, "block")
</script>

Se añade el parámetro block para que el cajón este desplegado desde un principio, todo lo demás igual que en los casos anteriores. Se podría mostrar un solo botón usando slideit().

Enlace: Animated Collapsible DIV

Entradas relacionadas

  • No related posts
  • guardado en Publicado en: CodesWeb
    technorati Reacciones otros blogs | Comparte en marc.sociales/mail: Click!


    8 Comentarios en la entrada “Div plegable/desplegable” (comentar)

    1. 05 Octubre 2007

      Muy útil, gracias !
      Algún día de estos seguro que me viene bien para alguna web. Lo guardo en favoritos :)

    2. Corso
      05 Octubre 2007

      A mandar luigix. Sigo tu blog desde que lo conocí cuando hice el recopilatorio del meme 3 consejos para ser un buen blogger, un placer haberlo descubierto. Un saludo.

    3. Pablo
      29 Octubre 2007

      Hola tengo problemas implementado el codigo en el tipo de URL http://www.talweb.com/?s=productos por ejemplo.

    4. Corso
      01 Noviembre 2007

      No tengo ni idea de que puede ser. Entra en la página de los creadores y mandales un mail comentándoles lo que te pasa a ver si te contestan.

      Un saludo.

    5. Choose
      15 Enero 2008

      Hola. Gracias por el código. Me ha sido muy útil y da un resultado muy aparente. ;)

      Fuerza y honor…

    6. Elías
      15 Enero 2008

      De nada Choose. Un saludo

    7. Danielostikus
      21 Abril 2008

      interesante efecto, pero me gustaria intentar hacer colapsable el menu, pero sin depender de un click, sino de un onload, espero su ayuda porque me ha salido dificil modificarlo de esa manera

    8. Rodo
      09 Mayo 2008

      Hola me parecio muy bueno este articulo, pero tengo un problema con IE, en mozilla funciona perfecto ;). pero el IE siempre permanece visible, hace el efecto de pliego pero se mantiene visible. :(


    Comentar


    diarioTHC 2007-2008 | Todo el contenido bajo licencia CC | Gestionado con Wordpress | Diseño de diarioTHC