jq-collapse.js

Extensión para jQuery de fácil implementación.


Proyecto mantenido por Wilfredo Nina Choquetarqui

¿Qué es jq-collapse.js?

Es una extensión para jQuery que permite ocultar y mostrar el contenido de un elemento con algunos atributos de datos data-*, para su ejecución se necesita de un elemento que acciona y otro que reacciona con una animación de cambio de alto o ancho según sea el caso.

¿Qué necesito?

Un navegador moderno y la dependencia de jQuery en su última versión.

¿Cómo se usa?

Incluya dentro de su proyecto el archivo jq-collapse.js que debe descargar previamente.

<script type="text/javascript" src="jq-collapse.js"></script>
1. Implementación

La implementación por defecto está definida de la siguiente manera:

<button type="button" id="ejecutar" data-jqcollapse-action="1">Ejecutar</button>
<p data-jqcollapse-reaction="1">A menudo mis alumnos me preguntan...</p>
// implementación por defecto
$('#ejecutar').jq_collapse();
A menudo mis alumnos me preguntan si la hermenéutica telúrica incaica transtrueca la peripatética anotrética de la filosofía aristotélica...
2. Animación

Para incluir animación en los elementos a ocultar o mostrar debe asignar valores a los parámetros de desplazamiento, opacidad y tiempo respectivamente, estos parámetros pueden definirse de manera general en javascript o de manera individual en html como atributos de datos. Los valores de los parámetros deben ser booleanos para el desplazamiento como para la opacidad y numéricos para el tiempo, ya que este está definido en segundos.

<!-- asignación de parámetros de manera individual -->
<button type="button" id="ejecutar"
data-jqcollapse-action="1"
data-jqcollapse-slide="true"
data-jqcollapse-fade="true"
data-jqcollapse-time="1">Ejecutar</button>
<p data-jqcollapse-reaction="1">A menudo mis alumnos me preguntan...</p>
// asignación de parámetros de manera general
$('#ejecutar').jq_collapse({
	slide: true,
	fade: true,
	time: 1
});
A menudo mis alumnos me preguntan si la hermenéutica telúrica incaica transtrueca la peripatética anotrética de la filosofía aristotéli...
3. Posición y tamaño

La posición en los elementos a ocultar o mostrar pueden ser definidos como horizontal o vertical según sea el caso y el tamaño puede ser variable en píxeles estando por defecto un ancho y un alto automáticos. Estos parámetros pueden definirse de manera general en javascript o de manera individual en html como atributos de datos. Estas funcionalidades sólo pueden ser perceptibles cuando hay algún tipo de animación en ejecución.

<!-- asignación de parámetros de manera individual -->
<button type="button" id="ejecutar"
data-jqcollapse-action="1"
data-jqcollapse-type="horizontal"
data-jqcollapse-size="200">Ejecutar</button>
<p data-jqcollapse-reaction="1">A menudo mis alumnos me preguntan...</p>
// asignación de parámetros de manera general
$('#ejecutar').jq_collapse({
	type: 'horizontal', // horizontal o vertical
	size: 200,
	slide: true
});
A menudo mis alumnos me preguntan si la hermenéutica telúrica incaica transtrueca la peripatética anotrética de la filosofía aristotélica...
4. Persistencia

En los elementos a ocultar o mostrar se puede definir un parámetro con el cual el estado de ese elemento puede persistir sin importar que el usuario recargue la página, para esto debe activar el parametro save y definir el modo de almacenamiento como sessionStorage o localStorage según el caso. Estos parámetros pueden definirse de manera general en javascript o de manera individual en html como atributos de datos.

<!-- asignación de parámetros de manera individual -->
<button type="button" id="ejecutar"
data-jqcollapse-action="1"
data-jqcollapse-save="true"
data-jqcollapse-storage="session">Ejecutar</button>
<p data-jqcollapse-reaction="1">A menudo mis alumnos me preguntan...</p>
// asignación de parámetros de manera general
$('#ejecutar').jq_collapse({
	save: true,
	storage: 'session' // session o local
});
A menudo mis alumnos me preguntan si la hermenéutica telúrica incaica transtrueca la peripatética anotrética de la filosofía aristotélica...
5. Comportamiento responsivo

Los elementos a ocultar o mostrar por defecto tienen un comportamiento responsivo, es decir que su funcionalidad cambia de acuerdo al tamaño de la pantalla. Los parámetros tipo y tamaño serán afectados cuando el tamaño de la pantalla sea menor a 768 píxeles por defecto, en otras palabras tendrá un comportamiento parecido a @media(min-width: 768px) que se define en css.

Cuando el parámetro responsive está activado el tamaño del elemento cambiará de cualquier valor numérico definido inicialmente a uno automático y el tipo cambiará siempre a vertical sea cual sea su valor inicial, ahora cuando el parámetro responsive está desactivado el funcionamiento definido inicialmente se mantiene constante, tal es el caso del siguiente ejemplo.

<!-- asignación de parámetros de manera individual -->
<button type="button" id="ejecutar"
data-jqcollapse-action="1"
data-jqcollapse-save="true"
data-jqcollapse-storage="session">Ejecutar</button>
<p data-jqcollapse-reaction="1">A menudo mis alumnos me preguntan...</p>
// asignación de parámetros de manera general
$('#ejecutar').jq_collapse({
	responsive: false,
	media: 768,
	type: 'horizontal',
	slide: true
});
A menudo mis alumnos me preguntan si la hermenéutica telúrica incaica transtrueca la peripatética anotrética de la filosofía aristotélica...
6. Eventos

Cuando los elementos a ocultar o mostrar son ejecutados se disparan ciertos eventos, los cuales pueden ser personalizados.

Evento Descripción
show.jq.collapse Este evento se dispara inmediatamente cuando el método show es invocado.
shown.jq.collapse Este evento se dispara cuando un elemento de reacción termina de hacerce visible incluyendo el tiempo de animación.
hide.jq.collapse Este evento se dispara inmediatamente cuando el método hide es invocado.
hidden.jq.collapse Este evento se dispara cuando un elemento de reacción termina de ocultarse incluyendo el tiempo de animación.
$('#ejecutar').on('shown.jq.collapse', function () {
	// código a ejecutar
});
A menudo mis alumnos me preguntan si...

Como habrá visto la librería es muy fácil de implementar y personalizar, el comportamiento responsivo y la capacidad de persistencia la hace una herramienta muy poderosa.

Esta herramienta fue desarrollada pensando también para dar la funcionalidad de ocultar y mostrar a elementos de un layout, si desea entrar en mayor detalle puede ingresar al siguiente enlace cs-layout.css.

Soporte o contacto

¿Tienes problemas? Ponte en contacto con wilnicho@gmail.com