jueves, 29 de septiembre de 2011

Slideshow con Prototype y Scriptaculous

Hace un tiempo publicamos un slideshow de imágenes, pero notamos que tenía cierta dificulad a la hora de agregar imagenes, había que retocar el código javascript para que funcione y eso no está bien. Así que, corregimos ese ejercicio para salvar este inconveniente y acá les dejamos un slideshow de imágenes múltiples más sensillo y más fácil de implementar. Seguimos utilizando Prototype y Scriptaculous pero de una forma más eficiente.

Como en el caso anterior, este slideshow no tiene controles, simplemente muestra las imagenes indicadas en un ciclo continuo, utilizando el efecto fade de Scriptaculous para iteración entre las imágenes.

martes, 27 de septiembre de 2011

Formulario de acceso estilo Blogger

En esta ocación les traemos un fomulario de acceso o login similar al utilizado por Blogger. Lo interesante es que todos los efectos se basan en CSS. Google no utiliza en este caso ninguna librería o Framework extra simplemente líneas de CSS.

Se utilizan varios comandos de CSS3, esto significa que funciona "a pleno" en los navegadores que interpreten CSS3, de no ser así no se desvirtúa el formulario simplemente no se apreciarán algunos efectos de sombras.

Todo el contenido está encerrado en un DIV por lo que resulta muy fácil de implementar en cualquier proyecto.

domingo, 25 de septiembre de 2011

Scriptaculous - Efecto Grow

Grow es un efecto de apertura de Scriptaculous. Este efecto nos permite mostrar un contenido oculto. Para invocarlo desde javascript:

Effect.Grow('id_del_elemento');

De esta forma utilizamos el efecto con sus valores por defecto. Pero Grow nos ofrece 3 atributos:
  • Duration - nos permite controlar el tiempo que dura el efecto. Por defecto 1.0
  • Direction - Nos permite controlar desde que dirección comienza el efecto, 'top-left', 'top-right', 'bottom-left', 'bottom-right'. Por defecto "center".
Entonces podríamos hacer esta llamada:

Effect.Grow('id_del_elemento',{duration:3.0 , direction:'top-left'});

Si quieres ver más detalles sobre este efecto pulsa aquí

Ver ejemplo

viernes, 23 de septiembre de 2011

Scriptaculous - Efecto Fade

Fade es el efecto opuesto de Appear. Es un efecto de cierre por tanto nos es útil para ocultar contenido que se encuentre visible. Tenemos dos maneras de invocar este efecto desde javascript:

Effect.Fade('id_del_elemento');

$('id_del_elemento').fade();

En este caso estamos utilizando el efecto con sus valores por defecto. Pero Fade incluye el atributo duration (entre otros) que nos permite controlar la duración del efecto: 

Effect.Fade('id_del_elemento',{duration: 3.0});

$('id_del_elemento').fade({duration: 3.0});

Aquí puedes ver más detalles acerca del efecto Fade

Ver ejemplo

miércoles, 21 de septiembre de 2011

FUNCIÓN $F

La función $F de Prototype se utiliza para obtener directamente el valor de un campo de formulario. Esta función simplifica el uso de document.getElementById("elemento").value de javascript. Veamos un ejemplo:

Tenemos este formulario:

<form>
   <input type="text" id="texto">
   <textarea id="area"></textarea>
   <select id="lista"></select>
</form>

Si quisieramos obtener el valor de cada uno de los elementos de este formulario con javascript sería:

texto = document.getElementById("texto").value
area = document.getElementById("area").value
lista = document.getElementById("lista").value

Con Prototype sería:

texto = $F("texto")
area = $F("area")
lista = $F("lista") 

Otra forma de obtener el valor de un campo de formulario con prototype sería utilizando la función $:

texto = $("texto").value
area = $("area").value
lista = $("lista").value

O bien de esta forma

valores = $("texto","area","lista").value

lunes, 19 de septiembre de 2011

Slideshow de imágenes con Scriptaculous

En este ejercicio creamos un slideshow de imágenes muy simple utilizando Prototype y los efectos Appear y Fade de Scriptaculous.

Ideal para hacer un slide continuo. No tiene controles. Es muy fácil de implementar y de agregarle imagenes al slide. Dado que está dentro de un contenedor DIV es totalmente configurable desde CSS. Podemos adaptarlo a cualquier tamaño de imagen y colocarlo en cualquier lugar de nuestro sitio.

sábado, 17 de septiembre de 2011

¿Cómo incluir Scriptaculous en un documento HTML?

Scriptaculous utiliza Prototype para el desarrollo de sus herramientas, por tanto para poder utilizar Scriptaculous en necesario previamente haber incluído la librería de Prototype en nuestro documento HTML. En este enlace se explica como incluir Prototype.

Ya tenemos incluida la librería de Prototype, ahora veamos como incluir la librería de Scriptaculous:

1) Descargar la librería de Scriptaculous. Es recomendable descargarla regularmente para mantenernos actualizados respecto de las mejoras y correciones que recibe la librería.

La descarga consiste en un archivo .zip que contiene 3 carpetas ( lib - src - test ) y algunos archivos fuera de éstas. Bien, para trabajar nos basta con la carpeta SRC el resto se utiliza para los ejemplos, así que podemos borrar todo excepto la carpeta SRC. Digo esto para no ocupar espacio con archivos innecesarios.

La carpeta SRC contiene estos archivos:
  • builder.js
  • controls.js
  • dragdrop.js
  • effects.js
  • scriptaculous.js
  • slider.js
  • sound.js
  • unittest.js
2) Veamos la forma más habitual de incluir Scriptaculous:


<!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">

 
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="src/scriptaculous.js"></script>
</head>

<body>
</body>
</html>
 
En negrita aparece el código necesario y en ese orden. Observe que declaramos un doctype, incluimos prototype y luego incluimos scriptaculous.js
La función de scriptaculous.js es la de incluir el resto de los archivos js que compenen la librería de Scriptaculous. Es decir que no es necesario incluir uno a uno todos los archivos. De esta manera tenemos disponibles todas las herramientas de Scriptaculous.

Pero no siempre se utilizan todas las herramientas de la librería, así que está bien si solo incluimos el archivo que necesitamos en nuestro proyecto. Por ejemplo, si solo utilizamos los efectos de Scriptaculous podemos hacer la inclusión de la siguiente manera:

<!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">

 
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="src/effects.js"></script>
</head>

<body>
</body>
</html>

jueves, 15 de septiembre de 2011

Scriptaculous - Efecto SwitchOff

SwitchOff es otro efecto de cierre que nos ofrece Scriptaculous. El simple pero atractivo, trata de emular el apagado de una TV.

Para invocarlo desde javascript

Effect.SwitchOff('id_del_elemento');

SwitchOff acepta el uso del atributo duration, pero al utilizarlo se pierde un poco el sentido del efecto.

Effect.SwitchOff('id_del_elemento',{duration:2.0});

Puedes ver más detalles de este efecto aquí

martes, 13 de septiembre de 2011

Scriptaculous - Efecto BlindUp

BlindUP es el opuesto a BlindDown, el efecto tipo persiana hacia arriba que nos permite ocultar un contenedor DIV de nuestro DOM. Funciona con la mayoría de los elementos del DOM de tipo bloque a excepción de las tablas.

El efecto se invoca desde javacript de la siguiente manera:

Effect.BlindUp('id_del_elemento');

Podemos utilizar el atributo duration para manipular la duración del efecto
Effect.BlindUp('id_del_elemento', { duration: 3.0 });

BlindUp provee otros atributos que permiten personalizar muy bien el efecto, puedes ver más aquí

domingo, 11 de septiembre de 2011

Efectos de cierre de Scriptaculous

Cuando hablamos de efectos de cierre, no referimos a la forma en que "se ocultará" un objeto contenedor en nuestra web. Entendemos por objeto contenedor a la etiqueta <DIV></DIV>.

La idea es que inicialmente "el contenedor"  se muestre hasta tanto el visitante solicite "ocultarlo", en ese momento le cerramos "el contenedor" y todo su contenido aplicando alguno de los efectos de cierre que ofrece Scriptaculous.

Entonces comenzamos por crear un objeto contenedor, identificándolo mediante el atributo id:

<div id="contenedor"></div>

Luego incluimos algún contenido a nuestro contenedor, un texto, una tabla, un formulario, una imagen, etc.

<div id="contenedor">
 Este es el contenido de mi contenedor
</div>

Ahora debemos mostrar nuestro contenedor, para esto utilizamos el atributo display:block de css. Es importante aplicar este atributo en la definición del contenedor. Si lo hacemos desde una hoja de estilos el efecto de Scriptaculous no funcionará.

<div id="contenedor" style='display:block;'>
 Este es el contenido de mi contenedor
</div>

Podemos utilizar una hoja de estilo o definir estilos para darle forma a  nuestro contenedor

#contenedor{
width: 200px;
height: 200px;
background-color: #CCCCCC;
}

Ahora demos la oportunidad al visitante de cerrar nuestro contenido oculto, por ejemplo utilizando un botón. La función de éste es llamar a una función javascript que se encargará de ocultar nuestro contenedor. Supongamos que la función se llama ocultar_contenido:

<div id="contenedor" style='display:block;'>
 Este es el contenido de mi contenedor
</div>
<input type="button" value="Ver contenido" onclick="ocultar_contenido()">

Ahora veamos nuestra función javascript:

<javascript>
function ocultar_contenido(){
$('contenedor').hide(); 
}//fin ocultar_contenido
</javascript>

$('contenedor') es la función Prototype que nos permite identificar a nuestro contenedor dentro del DOM de nuestra página y hide() es el efecto Scriptaculous que se aplica al contenedor identificado. Show es el efecto más básico, más adelante mostraremos efectos de apertura más interesantes.

Lo único que nos falta para que esto funciones es definir correctamente nuestro encabezado HTML e incluir las librerías de Prototype y Sriptaculous

<!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">
<head>
    <script type="text/javascript" src="prototype.js"></script>
    <script type="text/javascript" src="scriptaculous/scriptaculous.js"></script>
</head>

Finalmente el código de este ejemplo nos quedaría así:

<!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">
<head>

<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="scriptaculous/scriptaculous.js"></script>

<javascript>
function ocultar_contenido(){
$('contenedor').show(); 
}//fin ocultar_contenido
</javascript>

<style>
#contenedor{
width: 200px;
height: 200px;
background-color: #CCCCCC;
}
</style>
</head>

<body>

<div id="contenedor" style='display:block;'>
 Este es el contenido de mi contenedor
</div>
<input type="button" value="Ver contenido" onclick="ocultar_contenido()">

</body>
</html>

viernes, 9 de septiembre de 2011

Scriptaculous - Efecto BlindDown

BlindDown es un efecto de scriptaculous que permite mostrar un elemento del DOM que se encuentra oculto. Este efecto simula una persiana de ventana, donde el contenido del elementos afectados permanecer en su lugar.

Para aplicar el efecto, el bloque DIV debe estar oculto, para ello debes utilizar la propiedad display:none;  dentro del atributo style de la etiqueta, y no en la clase CSS para el div.

La forma de invocar el efecto desde javascript es la siguiente:

Effect.BlindDown('id_del_elemento');

El efecto tiene varios atributos que puedes ver aquí, el ejemplo que sigue a continuación muestra las opciones por defecto del efecto y la utilización del atributo duration.

miércoles, 7 de septiembre de 2011

Scriptaculous - Efecto Appear

Venimos hablando de los efectos de apertura de Scriptaculous. En este caso traemos a la mesa el efecto Appear.

Éste se aplica desde javascript sobre una objeto contenedor DIV identificado por una ID y que debe tener asignado el estilo style='display:none;'.

Por ejemplo: si nuestro DIV oculto con display:none tiene id='caja', podemos invocar el efecto Appear para mostrarlo, de dos maneras distintas:

$('#caja').appear();

Effect.Appear('caja');

Podemos usar cualquiera de estas dos formas, ambas son correctas y muestran el efecto con sus valores por defecto. Pero Appear nos ofrece el atributo Duration que nos permite manipular la duración del efecto.

$('#caja').appear({duration:3.0});

Effect.Appear('caja',{duration:5.0});

Appear incluye algunas opciones de uso que puedes ver aquí

lunes, 5 de septiembre de 2011

Efectos de apertura de Scriptaculous

Cuando hablamos de efectos de apertura, no referimos a la forma en que "aparecerá" un objeto contenedor en nuestra web. Entendemos por objeto contenedor a la etiqueta <DIV></DIV>.

La idea es que inicialmente "el contenedor" no se muestre hasta tanto el visitante solicite "verlo", en ese momento le mostramos "el contenedor" y todo su contenido aplicando alguno de los efectos de apertura que ofrece Scriptaculous.
Entonces comenzamos por crear un objeto contenedor, identificándolo mediante el atributo id:

<div id="contenedor"></div>

Luego incluimos algún contenido a nuestro contenedor, un texto, una tabla, un formulario, etc.

<div id="contenedor">
 Este es el contenido de mi contenedor
</div>

Ahora debemos ocultar nuestro contenedor, para esto utilizamos el atributo display:none de css. Es importante aplicar este atributo en la definición del contenedor. Si lo hacemos desde una hoja de estilos el efecto de Scriptaculous no funcionará.
<div id="contenedor" style='display:none;'>
 Este es el contenido de mi contenedor
</div>

Podemos utilizar una hoja de estilo o definir estilos para darle forma a  nuestro contenedor

#contenedor{
width: 200px;
height: 200px;
background-color: #CCCCCC;
}

Ahora demos la oportunidad al visitante de ver nuestro contenido oculto, por ejemplo utilizando un botón. La función de éste es llamar a una función javascript que se encargará de mostrar nuestro contenedor oculto. Supongamos que la función se llama mostrar_contenido:

<div id="contenedor" style='display:none;'>
 Este es el contenido de mi contenedor
</div>
<input type="button" value="Ver contenido" onclick="mostrar_contenido()">

Ahora veamos nuestra función javascript:

<javascript>
function mostrar_contenido(){
$('contenedor').show(); 
}//fin mostrar_contenido
</javascript>

$('contenedor') es la función Prototype que nos permite identificar a nuestro contenedor oculto dentro del DOM de nuestra página y show() es el efecto Scriptaculous que se aplica al contenedor identificado. Show es el efecto más básico, más adelante mostraremos efectos de apertura más interesantes.

Lo único que nos falta para que esto funciones es definir correctamente nuestro encabezado HTML e incluir las librerías de Prototype y Sriptaculous

<!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">
<head>
    <script type="text/javascript" src="prototype.js"></script>
    <script type="text/javascript" src="scriptaculous/scriptaculous.js"></script>
</head>

Finalmente el código de este ejemplo nos quedaría así:

<!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">
<head>

<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="scriptaculous/scriptaculous.js"></script>

<javascript>
function mostrar_contenido(){
$('contenedor').show(); 
}//fin mostrar_contenido
</javascript>

<style>
#contenedor{
width: 200px;
height: 200px;
background-color: #CCCCCC;
}
</style>
</head>

<body>

<div id="contenedor" style='display:none;'>
 Este es el contenido de mi contenedor
</div>
<input type="button" value="Ver contenido" onclick="mostrar_contenido()">

</body>
</html>

sábado, 3 de septiembre de 2011

Formulario estilo Wordpress

En este ejercicio nos propucimos replicar un formulario con estilos similares a los utilizados por Wordpress. Dado que está basado completamente en CSS resulta muy fácil de configurar o adaptar a cualquier proyecto.

Incluimos una ayuda al usuario que se activa cuando un elemento del formulario recibe foco. Para ello nos valimos de algunas de funciones de Prototype y Scriptaculous.

Los efectos de bordes redondeados se basan en definiciones de CSS3, los navegadores que no admitan estas reglas mostraran las puntas cuadradas.

jueves, 1 de septiembre de 2011

Menú desplegable con Prototype y Scriptaculous

Hoy les ofrecemos un menú vertical desplegable. Es un script muy fácil de incorporar ya que todo el contenido del menú está "encerrado" en un DIV y sencillo de adaptar a nuestras necesidades. Utiliza Prototype, Scriptaculous y algunas definiciones de CSS3 para lograr ciertos efecto. Aclaramos que estos efectos no son indispensables, así que los navegadores que no acepten CSS3 no desvirtuarán el menú.

El cencepto es muy sencillo, inicialmenente se muestran las opciones del menú con una flechita que al clikearla despliega las opciones de ese menú, permitiendo contraer dichas opciones. Se pueden agregar los menús y opciones de menú sin límite.