Nueva entrada con 3 nuevos efectos de transición de jQuery, son jQuery slideDown(), slideUp() y slideToggle().
Estas funciones son muy usadas para hacer slideshows, sliders o el conocido efecto acordeón. Se pueden combinar con otras funciones de jQuery como los efectos fading (fadeIn, fadeTo, fadeToggle, fadeOut), con show() y hide() o con jQuery animate() para realizar animaciones CSS con elelementos del DOM.
Estos efectos no suelen causar conflitos de jQuery, pero si vuestra web tiene bastantes funciones JQ no dudéis en caso de incompatibilidades usar jQuery noConflict().
Vuelvo a enumerar las 3 funciones con una sencilla explicación de su funcionamiento:
Resumiendo podemos decir que los efectos ‘Sliding’ de jQuery:
Muestran u ocultan elementos de la web utilizando un efecto de deslizamiento.
Tal y como comenté arriba la función slideDown muestra un elemento usando un efecto de deslizamiento, su sintaxis extraída de web oficial es la siguiente:
$(elemento).slideDown(speed,easing,callback)
Comento los parámetros que podemos pasar a esta función:
La función slideUp oculta un elemento usando un efecto de deslizamiento, su sintaxis extraída de web oficial es la siguiente:
$(elemento).slideUp(speed,easing,callback)
Comento los parámetros que podemos pasar a esta función (los mismos que en slideDown):
La función slideToggle muestra y/o oculta un elemento usando un efecto de deslizamiento, su sintaxis extraída de web oficial es la siguiente:
$(elemento).slideToggle(speed,easing,callback)
Comento los parámetros que podemos pasar a esta función (los mismos que en slideDown y slideUp):
Bueno…. tras la parrafada que os he metido para ver la sintaxis de estas 3 fuciones de jQuery llega el turno de los ejemplos.
Voy a intentar hacer una demo parecida a la de los efectos Fading (fadeIn, fadeOut, fadeTo y fadeToggle) con varios botones para probar los efectos de acordeón.
Os dejo el código de la demo de ejemplo de jQuery slideDown, slideUp y slideToggle:
<script type='text/javascript' src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#down01").click(function(event) { $("#rectangulo").slideDown(); }); $("#down02").click(function(event) { $("#rectangulo").slideDown(4000); }); $("#down03").click(function(event) { $("#rectangulo").slideDown("fast"); }); $("#down04").click(function(event) { $("#rectangulo").slideDown("fast", function() { alert ('Efecto slideDown con velocidad fast terminado!'); }); }); $("#up01").click(function(event) { $("#rectangulo").slideUp(); }); $("#up02").click(function(event) { $("#rectangulo").slideUp(4000); }); $("#up03").click(function(event) { $("#rectangulo").slideUp("slow"); }); $("#up04").click(function(event) { $("#rectangulo").slideUp("slow", function() { alert ('Efecto slideUp con velocidad slow terminado!'); }); }); $("#toggle01").click(function(event) { $("#rectangulo").slideToggle(); }); $("#toggle02").click(function(event) { $("#rectangulo").slideToggle(4000); }); $("#toggle03").click(function(event) { $("#rectangulo").slideToggle("slow", function() { alert ('Efecto slideToggle con velocidad slow terminado!'); }); }); }); </script>
Voy a comentar el código por partes, los efectos se realizan cuando se pulsan los botones de la demo, esta pulsación se detecta con la función jQuery click():
Concluyendo os pongo el código de los botones:
<input type="button" id="up01" value="Ocultar con slideUp()"> <input type="button" id="down01" value="Mostrar con slideDown()"> <input type="button" id="up02" value="Ocultar con slideUp() en 4000 milisegundos"> <input type="button" id="down02" value="Mostrar con slideDown() en 4000 milisegundos"> <input type="button" id="up03" value="Ocultar con slideUp() con 'slow'"> <input type="button" id="down03" value="Mostrar con slideDown() con 'fast'"> <input type="button" id="up04" value="Ocultar con slideUp() con 'slow' y callback"> <input type="button" id="down04" value="Mostrar con slideDown() con 'fast' y callback"> <input type="button" id="toggle01" value="Mostrar / ocultar con slideToggle()"> <input type="button" id="toggle02" value="Mostrar / ocultar con slideToggle() en 4000 milisengos"> <input type="button" id="toggle03" value="Mostrar / ocultar con slideToggle() con 'slow' con callback">
Para la detección, control o selección de elementos con jQuery os recomiendo leer este post: