<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>AJAX24 - Componentes y Efectos en AJAX, Javascript y DHTML</title>
	<link>http://www.flash-free.org</link>
	<description>por equipo24</description>
	<pubDate>Sat, 02 Aug 2008 19:31:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>es</language>
			<item>
		<title>Monperla.es  – Web totalmente Ajax desarrollada con prototype y scriptaculous</title>
		<link>http://www.flash-free.org/2008/08/02/monperlaes-%e2%80%93-web-totalmente-ajax-desarrollada-con-prototype-y-scriptaculous/</link>
		<comments>http://www.flash-free.org/2008/08/02/monperlaes-%e2%80%93-web-totalmente-ajax-desarrollada-con-prototype-y-scriptaculous/#comments</comments>
		<pubDate>Sat, 02 Aug 2008 19:31:07 +0000</pubDate>
		<dc:creator>aartiles</dc:creator>
		
		<category><![CDATA[Ejemplos]]></category>

		<category><![CDATA[Prototype]]></category>

		<category><![CDATA[Scriptaculous]]></category>

		<category><![CDATA[Site Reviews]]></category>

		<guid isPermaLink="false">http://www.flash-free.org/2008/08/02/monperlaes-%e2%80%93-web-totalmente-ajax-desarrollada-con-prototype-y-scriptaculous/</guid>
		<description><![CDATA[Desde que comenzamos a publicar este blog hemos venido ofreciendo una serie de componentes y técnicas para desarrollar un sitio completamente Ajax. Hoy veremos cómo uniendo todas estas técnicas obtenemos resultados que hasta hace bien poco parecían imposible sin tener que recurrir al Flash.
El caso de estudio es Monperla, una tienda online de joyería de [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.flash-free.org/wp-content/uploads/2008/08/monperla21.jpg" alt="Monperla, tienda de artículos de joyería de la perla" style="border: 4px solid white; margin-right: 5px" align="left" />Desde que comenzamos a publicar este blog hemos venido ofreciendo una serie de componentes y técnicas para desarrollar un sitio completamente Ajax. Hoy veremos cómo uniendo todas estas técnicas obtenemos resultados que hasta hace bien poco parecían imposible sin tener que recurrir al Flash.</p>
<p>El caso de estudio es <a href="http://www.monperla.es" target="_blank">Monperla, una tienda online de joyería de la perla</a>, en particular veremos ahora la web corporativa y próximamente cuando terminemos la nueva versión tienda la analizaremos también.</p>
<p>Los que seguís de cerca nuestro blog notarán enseguida que el protagonista de la página es <a href="http://www.flash-free.org/2008/05/04/e24squares-efecto-ajax-de-transicion-de-imagenes/">e24Squares, el efecto galería de bloques aleatorios</a> que publicamos en posts anteriores. Este efecto está integrado de manera que cada página del sitio se relaciona con una imagen y cuando se carga una nueva página el efecto se ejecuta haciendo la transición entre la imagen de la pagina actual con la de destino.</p>
<p>Como se ve las páginas se cargan asincrónicamente apareciendo un efecto fade. Una característica importante del sitio es que se ha <a href="http://www.flash-free.org/2008/04/13/degradar-correctamente-en-ajax/">cuidado que degrade satisfactoriamente cuando la ejecución javascript esté deshabilitada</a>, por lo que el sitio se indexará perfectamente por los buscadores, para ello hemos utilizado las técnicas descritas en el post donde comentamos <a href="http://www.flash-free.org/2008/05/03/degradar-con-prototype-el-evento-ondomready/">la importancia de evento onDomReady</a>.</p>
<p>Como se ha comentado en posts anteriores, las webs que para cargar una nueva página lo hacen mediante llamadas asincrónicas ajax sin necesidad de recargar la página presentan el problema de que si el usuario utiliza el botón Atrás (back) del navegador la página se abandonaría. Para solucionar esto hemos utilizado el <a href="http://www.flash-free.org/2008/07/05/history-manager-para-ajax-solucion-al-boton-back/">componente protoHistoryManager</a>.</p>
<p>La web tiene otros efectos Ajax más tradicionales como ventanas lighbox para ampliar algunas fotos, rollover en algunas fotos.  Además permite agrandar o achicar el tamaño de la fuente de los textos.</p>
<p>Espero que sirva de ayuda para aquellos que han solicitado ejemplos y aplicaciones de nuestros componentes. Agradeceríamos que nos comunicarais los errores encontréis en las diferentes versiones de los navegadores.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flash-free.org/2008/08/02/monperlaes-%e2%80%93-web-totalmente-ajax-desarrollada-con-prototype-y-scriptaculous/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Ajaxigg - Red social sobre novedades del mundo AJAX</title>
		<link>http://www.flash-free.org/2008/07/29/ajaxigg-red-social-sobre-novedades-del-mundo-ajax/</link>
		<comments>http://www.flash-free.org/2008/07/29/ajaxigg-red-social-sobre-novedades-del-mundo-ajax/#comments</comments>
		<pubDate>Tue, 29 Jul 2008 15:56:12 +0000</pubDate>
		<dc:creator>aartiles</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.flash-free.org/2008/07/29/ajaxigg-red-social-sobre-novedades-del-mundo-ajax/</guid>
		<description><![CDATA[equipo24 se complace en anunciar el lanzamiento de Ajaxigg. Ajaxigg es una read social al estilo digg.com y meneame.es donde los usuarios podrán compartir noticias, componentes, trucos,  tutoriales  relacionados con el desarrollo ajax. En Ajaxigg son los usuarios quienes deciden qué noticias son más relevante mediante su sistema de votaciones.
En estos momentos solo está disponible [...]]]></description>
			<content:encoded><![CDATA[<p>equipo24 se complace en anunciar el lanzamiento de <a href="http://ajaxigg.flash-free.org">Ajaxigg</a>. Ajaxigg es una read social al estilo <a href="http://digg.com">digg.com</a> y <a href="http://meneame.es">meneame.es</a> donde los usuarios podrán compartir noticias, componentes, trucos,  tutoriales  relacionados con el desarrollo ajax. En Ajaxigg son los usuarios quienes deciden qué noticias son más relevante mediante su sistema de votaciones.</p>
<p>En estos momentos solo está disponible para la comunidad hispanoparlante pero muy pronto estará lista la versión en inglés.</p>
<p>Espero que os sea útil.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flash-free.org/2008/07/29/ajaxigg-red-social-sobre-novedades-del-mundo-ajax/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Las llamadas asyncrónicas de ajax, la clave de los buscadores web2.0</title>
		<link>http://www.flash-free.org/2008/07/24/las-llamadas-asyncronicas-de-ajax-la-clave-de-los-buscadores-web20/</link>
		<comments>http://www.flash-free.org/2008/07/24/las-llamadas-asyncronicas-de-ajax-la-clave-de-los-buscadores-web20/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 23:17:55 +0000</pubDate>
		<dc:creator>aartiles</dc:creator>
		
		<category><![CDATA[Ejemplos]]></category>

		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.flash-free.org/2008/07/24/las-llamadas-asyncronicas-de-ajax-la-clave-de-los-buscadores-web20/</guid>
		<description><![CDATA[La principal bondad de ajax de permitir realizar llamadas asincrónicas y servir resultados sin interrumpir la experiencia del usuario en la página, constituye la clave de hoy día en los buscadores Web2.0.
Aqui os dejo algunos ejemplos que nos hacen la vida más fácil gracias a esta fabulosa tecnología:

Minube - Buscador de vuelos baratos
p2pFinder - Buscador [...]]]></description>
			<content:encoded><![CDATA[<p>La principal bondad de ajax de permitir realizar llamadas asincrónicas y servir resultados sin interrumpir la experiencia del usuario en la página, constituye la clave de hoy día en los buscadores Web2.0.</p>
<p>Aqui os dejo algunos ejemplos que nos hacen la vida más fácil gracias a esta fabulosa tecnología:</p>
<ul>
<li><a href="http://www.minube.com/ ">Minube - Buscador de vuelos baratos</a></li>
<li><a href="http://www.p2pfinder.com">p2pFinder - Buscador de archivos torrents y enlaces eDonkey</a></li>
<li><a href="http://www.shopall.es">Shopall</a></li>
<li><a href="http://www.ajaxlookup.com/">AjaxLookup Domain Whois</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.flash-free.org/2008/07/24/las-llamadas-asyncronicas-de-ajax-la-clave-de-los-buscadores-web20/feed/</wfw:commentRss>
		</item>
		<item>
		<title>History Manager para AJAX, solución al botón back</title>
		<link>http://www.flash-free.org/2008/07/05/history-manager-para-ajax-solucion-al-boton-back/</link>
		<comments>http://www.flash-free.org/2008/07/05/history-manager-para-ajax-solucion-al-boton-back/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 17:05:56 +0000</pubDate>
		<dc:creator>aartiles</dc:creator>
		
		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Mootools]]></category>

		<category><![CDATA[Prototype]]></category>

		<category><![CDATA[Componentes]]></category>

		<guid isPermaLink="false">http://www.flash-free.org/2008/07/05/history-manager-para-ajax-solucion-al-boton-back/</guid>
		<description><![CDATA[Una de las mayores críticas a las aplicaciones web en AJAX es acerca de sus limitaciones de accesibilidad y usabilidad. Los usuarios tienen ya vicios y costumbres y no entiende de AJAX, ello solo quieren que si le dan al botón back funcione como siempre y valla a la página anterior, y que si marcan [...]]]></description>
			<content:encoded><![CDATA[<p>Una de las mayores críticas a las aplicaciones web en AJAX es acerca de sus limitaciones de accesibilidad y usabilidad. Los usuarios tienen ya vicios y costumbres y no entiende de AJAX, ello solo quieren que si le dan al botón back funcione como siempre y valla a la página anterior, y que si marcan una página en sus favoritos que luego cuando vuelva valla a la pantalla que el marcó y no a la página principal que es lo que suele suceder con las páginas web en AJAX.</p>
<p>Digitarald.de ha desarrollado una solución <a href="http://digitarald.de/project/history-manager/" title="HistoryManager - The Ajax Back-Button (v1.0)HistoryManager - The Ajax Back-Button (v1.0)">HistoryManager - The Ajax Back-Button (v1.0)</a> para aquellos que usan <a href="http://mootools.net/" title="Mootools AJAX Library">Mootools </a>  Pueden probar sus ejemplos, y por mi parte yo lo he implementado en <a href="http://www.equipo24.com" title="equipo24 - Desarrollo AJAX Avanzado">www.equipo24.com</a></p>
<p>Como también suelo desarrollar con <a href="http://www.prototypejs.org/" title="Prototype Ajax Library">Prototype</a> he reescrito el código para que sea compatible con dicha librería, la forma de uso es muy similar al original. Espero que os sea útil.</p>
<p>Descargar <a href="http://www.flash-free.org/wp-content/files/prototypehistoryManager/prototype.historyManager.js" title="History Manager for Prototype AJAX Library">prototype.historyManager.js</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flash-free.org/2008/07/05/history-manager-para-ajax-solucion-al-boton-back/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Validar atributo target XHTML Strict o HTML 4.0 Strict</title>
		<link>http://www.flash-free.org/2008/05/17/validar-atributo-target-xhtml-strict-o-html-40-strict/</link>
		<comments>http://www.flash-free.org/2008/05/17/validar-atributo-target-xhtml-strict-o-html-40-strict/#comments</comments>
		<pubDate>Sat, 17 May 2008 20:58:11 +0000</pubDate>
		<dc:creator>aartiles</dc:creator>
		
		<category><![CDATA[Estándares]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Mootools]]></category>

		<guid isPermaLink="false">http://www.flash-free.org/2008/05/17/validar-atributo-target-xhtml-strict-o-html-40-strict/</guid>
		<description><![CDATA[Para los amantes de los estándares de la web os propongo un truco para simular el comportamiento del atributo “target” de la etiqueta &#60;a&#62;, sin dejar de cumplir el estándar  HTML 4.0 Strict o XHTML 1.0 Strict.
Para ello utilizaremos el atributo rel=”external” que no incumple con los estándares. Utilizaremos un script que revisará todos [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">Para los amantes de los estándares de la web os propongo un truco para simular el comportamiento del atributo <em>“target” </em>de la etiqueta <em>&lt;a&gt;</em>, sin dejar de cumplir el estándar <span> </span>HTML 4.0 Strict o XHTML 1.0 Strict.</p>
<p class="MsoNormal">Para ello utilizaremos el atributo <em>rel=”external”</em> que no incumple con los estándares. Utilizaremos un script que revisará todos los enlaces <span> </span>(etiquetas <em>&lt;a&gt;</em>)<span>  </span>cuyo atributo “rel” tenga valor <em>“external” </em>y le asignará un evento “onclick” que cancelará el evento por defecto y abrirá la URL de <span> </span><em>“href” </em>en una nueva ventana.</p>
<p><pre class="chili-all"><code class="html">&lt;a href=&quot;http://www.equipo24.com&quot; rel=&quot;external&quot;&gt;Sitio desarrollado con mootools&lt;/a&gt;</code></pre></p>
<p class="MsoNormal">A continuación os dejo los códigos javascript para <a href="http://mootools.net/" title="Mootools" target="_blank">Mootools</a> y una solución general sin necesidad de bibiliotecas externas.</p>
<p><strong>Mootools</strong></p>
<p><pre class="chili-all"><code class="javascript">function fix_external_links() {
	$ES('a').each(function(el) {
		if (el.getProperty('rel') == 'external') {
			el.addEvent('click', function(e) {
				e = new Event(e);
				e.stop();	
				window.open(this.getProperty('href'));
			}.bind(el));
		}	
	});
}

window.addEvent('domready', function() { 
	fix_external_links();
});</code></pre></p>
<p><strong>Sin bibliotecas externas</strong></p>
<p><pre class="chili-all"><code class="javascript">function fix_external_links() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName(&quot;a&quot;);
	for (var i = 0; i &lt; anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute(&quot;rel&quot;) &amp;&amp; anchor.getAttribute(&quot;rel&quot;) == &quot;external&quot;) {
			anchor.target = &quot;_blank&quot;;
		} 
	}
}
window.onload = fix_external_links;</code></pre></p>
<p><pre class="chili-all"><code class="javascript">function fix_external_links() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName(&quot;a&quot;);
	for (var i = 0; i &lt; anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute(&quot;rel&quot;) &amp;&amp; anchor.getAttribute(&quot;rel&quot;) == &quot;external&quot;) {
			anchor.target = &quot;_blank&quot;;
		} 
	}
}
window.onload = fix_external_links;</code></pre></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flash-free.org/2008/05/17/validar-atributo-target-xhtml-strict-o-html-40-strict/feed/</wfw:commentRss>
		</item>
		<item>
		<title>e24Squares - Efecto AJAX de transición de imágenes</title>
		<link>http://www.flash-free.org/2008/05/04/e24squares-efecto-ajax-de-transicion-de-imagenes/</link>
		<comments>http://www.flash-free.org/2008/05/04/e24squares-efecto-ajax-de-transicion-de-imagenes/#comments</comments>
		<pubDate>Sun, 04 May 2008 17:49:31 +0000</pubDate>
		<dc:creator>aartiles</dc:creator>
		
		<category><![CDATA[Galería]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Prototype]]></category>

		<category><![CDATA[Scriptaculous]]></category>

		<category><![CDATA[Animaciones]]></category>

		<category><![CDATA[Efectos]]></category>

		<guid isPermaLink="false">http://www.flash-free.org/2008/05/04/e24squares-efecto-ajax-de-transicion-de-imagenes/</guid>
		<description><![CDATA[Introducción
e24Squares  es una extensión para scriptaculous que permite hacer transiciones entre imágenes con un efecto original. Este efecto genera una serie de cuadros blancos que van apareciendo de forma aleatoria en diferentes posiciones mientras la siguiente imagen va apareciendo detrás con un efecto de opacidad o fade. La extensión puede ser usada como galería [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introducción</strong></p>
<p><img src="http://www.flash-free.org/wp-content/uploads/2008/05/e2squares.jpg" alt="e24Squares - Galeria de fotos" align="left" hspace="5" vspace="5" />e24Squares <span> </span>es una extensión para <a href="http://script.aculo.us/" target="_blank">scriptaculous</a> que permite hacer transiciones entre imágenes con un efecto original. Este efecto genera una serie de cuadros blancos que van apareciendo de forma aleatoria en diferentes posiciones mientras la siguiente imagen va apareciendo detrás con un efecto de opacidad o fade. La extensión puede ser usada como galería de fotos o como un efecto decorativo en nuestra página web.</p>
<p class="MsoNormal"><strong>Demos</strong></p>
<ul>
<li>
<a href="http://www.flash-free.org/wp-content/files/e24squares/index2.html" class="lightwindow page-options" params="lightwindow_type=external" title="Transiciones Manuales" caption="Transiciones Manuales con Javascript ">Transiciones Manuales</a>
</li>
<li>
<a href="http://www.flash-free.org/wp-content/files/e24squares/index.html" class="lightwindow page-options" params="lightwindow_type=external" title="Reproducción automática" caption="Reproducción automática con Javascript">Reproducción automática</a>
</li>
</ul>
<p class="MsoNormal"><o:p> </o:p><strong>¿Cómo utilizarlo?</strong></p>
<p class="MsoNormal">Incluya <a href="http://www.prototypejs.org/" target="_blank">Prototype 1.6.0.2</a> y <a href="http://script.aculo.us/" target="_blank">Scriptaculous 1.8.1 </a>dentro del header del código HTML de la página. Incluya e24Squares después de ambos:</p>
<p><pre class="chili-all"><code class="javascript">&lt;script type='text/javascript' src='js/prototype.js'&gt;&lt;/script&gt;
&lt;script type='text/javascript' src='js/scriptaculous.js?load=effects'&gt;&lt;/script&gt;
&lt;script type='text/javascript' src='js/e24squares.js'&gt;&lt;/script&gt;</code></pre></p>
<p class="MsoNormal">Ahora escriba el código HTML necesario para definir la galería. Necesitaremos una capa contenedora (“visor” en el ejemplo) y dentro de la capa contenedora pondremos una imagen que será la que aparezca inicialmente antes de comenzar el efecto.</p>
<p><pre class="chili-all"><code class="html">&lt;!--e24Squares container --&gt;
&lt;div id=&quot;visor&quot; &gt;
	&lt;img src=&quot;img/liberty.jpg&quot; alt=&quot;imagen 1&quot; /&gt;
&lt;/div&gt;
&lt;!-- End of e24Squares container --&gt;</code></pre></p>
<p class="MsoNormal">Ahora veremos el código javascript necesario para el funcionamiento del <span> </span>efecto, donde pasaremos como primer parámetro el id de la capa contenedora de la galería “visor”, como segundo parámetro pasaremos un array con los nombres de los archivos de las imágenes y por último un array de parámetros para el efecto.<o:p> </o:p></p>
<p><pre class="chili-all"><code class="javascript">oe24Squares = new e24Squares( 'visor', 
			    [ 'liberty.jpg', 'newyork2.jpg', 'mexico.jpg', 'newyork.jpg' ],
				{ 
					base: 'img/', 
					width: 640, 
					height: 300, 
					rows: 3, 
					cols: 5, 
					hideonfinish: true, 
					autostart: true, 
					duration: 1.0, 
					interval: 1.0 
				}
			);</code></pre></p>
<p class="MsoNormal"><strong>Todas las Opciones</strong></p>
<ul>
<li><span></span><em>base</em>: El camino donde se encuentran las imágenes.</li>
<li><span> </span><em>width</em>: Ancho en pixeles del visor de la galería.</li>
<li><span> </span><em>height</em>: Alto en pixeles del visor de la galería.</li>
<li><span> </span><em>rows</em>: Cantidad de filas en que se dividirá el visor para formar los cuadros de la transición. Valor por defecto: 3</li>
<li><span> </span><em>cols</em>: Cantidad de columnas en que se dividirá el visor para formar los cuadros de la transición. Valor por defecto: 5</li>
<li><span> </span><em>duration</em>: Un valor decimal que representa el tiempo en segundos que durará <span> </span>la transición entre una foto y la siguiente. Valor por defecto: 1.0</li>
<li><span> </span><em>interval</em>: Un valor decimal que representa el tiempo en segundos que tardará en comenzar la siguiente transición. Valor por defecto: 0.3</li>
<li><span></span><em>color</em>: Representa el color de los cuadros que aparecerán en el efecto. Valor por defecto: #ffffff</li>
<li><em>autostart</em>: Un valor booleano, si es true la animación se inicia automáticamente, si es false necesitaremos llamar al método <em>start()</em> para iniciar la reproducción automática o llamar al método <em>transition()</em> para ir a una imagen determinada. Valor por defecto: false</li>
<li><em>hideonfinish</em>: Un valor booleano, si es true el visor se ocultará cuando llegue a la última foto, si es false la última foto permanecerá visible. Valor por defecto: false</li>
<li><span></span><em>callback</em>: función que se llamará cuando se complete la última transición, útil para concatenar con otro efecto.</li>
</ul>
<p class="MsoNormal"><strong>Métodos</strong></p>
<ul>
<li><span></span><em>start</em>: <span> </span>No requiere parámetros, inicia la animación si el efecto se creó con el parámetro autostart como false.</li>
<li><span></span><em>transition((int)index, (function)pCallback)</em>: <span> </span>Recibe como primer parámetro el índice de la imagen a mostrar(la primera es 0), el segundo parámetro es una función que se llamará cuando termine la transición por si se necesita concatenar con otra acción.</li>
</ul>
<p><pre class="chili-all"><code class="javascript">oe24Squares.transition(2);</code></pre></p>
<p class="MsoNormal"><strong>Errores conocidos y cosas por hacer</strong></p>
<ul>
<li><span></span>Permitir que la reproducción automática comience por el primero cuando llegue al final.</li>
</ul>
<p class="MsoNormal"><strong>Descargar</strong></p>
<p class="MsoNormal"><a href="http://www.flash-free.org/wp-content/files/e24squares/e24squares.zip">e24Squares 0.2 beta</a> (218 KB, incluye los demos)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flash-free.org/2008/05/04/e24squares-efecto-ajax-de-transicion-de-imagenes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Degradar con Prototype.  El evento onDomReady</title>
		<link>http://www.flash-free.org/2008/05/03/degradar-con-prototype-el-evento-ondomready/</link>
		<comments>http://www.flash-free.org/2008/05/03/degradar-con-prototype-el-evento-ondomready/#comments</comments>
		<pubDate>Fri, 02 May 2008 23:18:04 +0000</pubDate>
		<dc:creator>aartiles</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Prototype]]></category>

		<category><![CDATA[gracefully degrade]]></category>

		<guid isPermaLink="false">http://www.flash-free.org/2008/05/03/degradar-con-prototype-el-evento-ondomready/</guid>
		<description><![CDATA[En el post anterior vimos la importancia de cuidar que nuestros scripts AJAX degraden correctamente. Hoy veremos un caso práctico de cómo lograrlo utilizando prototype.
Pongamos como ejemplo el efecto e24Writer descrito en posts anteriores. El e24Writer hace que una serie de elementos aparezcan progresivamente, por tanto necesitaríamos que dichos elementos estén ocultos antes de comenzar [...]]]></description>
			<content:encoded><![CDATA[<p>En el <a href="http://www.flash-free.org/2008/04/13/degradar-correctamente-en-ajax/">post anterior</a> vimos la importancia de cuidar que nuestros scripts AJAX degraden correctamente. Hoy veremos un caso práctico de cómo lograrlo utilizando <a href="http://www.prototypejs.org">prototype</a>.</p>
<p class="MsoNormal">Pongamos como ejemplo el efecto <a href="http://www.flash-free.org/2008/03/20/e24writer-efecto-de-aparicion-progresiva/" title="e24Writer">e24Writer</a> descrito en posts anteriores. El e24Writer hace que una serie de elementos aparezcan progresivamente, por tanto necesitaríamos que dichos elementos estén ocultos antes de comenzar el efecto. <span> </span>Supongamos que animaremos el texto “AJAX”, de manera que aparezca letra a letra. Si ocultamos este texto inicialmente poniendo la propiedad de CSS <em>display</em> a <em>none</em>, si por alguna razón de las descritas en el <a href="http://www.flash-free.org/en/2008/04/13/degradar-correctamente-en-ajax/">post anterior</a> el javascript fallara entonces nuestra web no degradaría correctamente porque el texto “AJAX” nunca se mostraría.</p>
<p class="MsoNormal">Si por el contrario dejamos el texto visible de inicio necesitaríamos ocultarlo antes de que se muestre la página, para ello necesitaríamos hacerlo en un evento que se ejecute apenas tengamos acceso a todo el DOM y antes de que se muestre la página. Este evento es sin duda el “domReady”.</p>
<p class="MsoNormal">A diferencia de otras bibliotecas de AJAX como <a href="http://mootools.net/" title="Mootools">Mootools</a>, <a href="http://developer.yahoo.com/yui/">YUI</a> o <a href="http://extjs.com/">ExtJs</a>, <a href="http://www.prototypejs.org">Prototype</a> no implementa nativamente el evento “domReady”.<span>  </span>Pero si buscamos en Google por “prototype domReady” encontramos varias extensiones <a href="http://clientside.cnet.com/code-snippets/event-scripting/a-dom-ready-extension-for-prototype/">como esta</a> <span> </span></p>
<p><pre class="chili-all"><code class="javascript">Event.onDOMReady(function() {
  $('text').hide();
  oe24Writer = new e24Writer( 'text', { autostart: true, duration: 1.0, interval: 0.3 });
});</code></pre></p>
<p class="MsoNormal">De esta forma <span> </span>el texto podrá leerse independientemente de la presencia o no de javascript.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flash-free.org/2008/05/03/degradar-con-prototype-el-evento-ondomready/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Degradar correctamente en AJAX</title>
		<link>http://www.flash-free.org/2008/04/13/degradar-correctamente-en-ajax/</link>
		<comments>http://www.flash-free.org/2008/04/13/degradar-correctamente-en-ajax/#comments</comments>
		<pubDate>Sun, 13 Apr 2008 03:21:27 +0000</pubDate>
		<dc:creator>aartiles</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[gracefully degrade]]></category>

		<guid isPermaLink="false">http://www.flash-free.org/2008/04/13/degradar-correctamente-en-ajax/</guid>
		<description><![CDATA[Con cada nueva versión los navegadores nos traen nuevas funcionalidades que nos permiten dotar a nuestras páginas de efectos AJAX cada vez más avanzados y atractivos. Aunque la mayoría de estas mejoras van de la mano en los navegadores más populares y cada vez están más estandarizadas,  siempre existen factores que hacen que nos [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">Con cada nueva versión los navegadores nos traen nuevas funcionalidades que nos permiten dotar a nuestras páginas de efectos AJAX cada vez más avanzados y atractivos. Aunque la mayoría de estas mejoras van de la mano en los navegadores más populares y cada vez están más estandarizadas, <span> </span>siempre existen factores que hacen que nos encontremos con diferentes escenarios como<span>  </span>los siguientes:</p>
<ul>
<li><!--[if !supportLists]--><span style="font-family: Symbol"><span><span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal"></span></span></span><!--[endif]-->Usuarios que continúan usando antiguas versiones de los navegadores.</li>
<li><!--[if !supportLists]--><span style="font-family: Symbol"><span></span></span>Usuarios que utilizan navegadores menos populares o menos estándares.</li>
<li><!--[if !supportLists]--><span style="font-family: Symbol"><span></span></span>Usuarios que por razones de seguridad deshabilitan las secuencias de comandos javascript u otras restricciones similares.</li>
<li><!--[if !supportLists]--><span style="font-family: Symbol"><span></span></span>Las arañas de los buscadores que no suelen interpretar javascript y por tanto algunos textos pueden quedar ocultos de cara a los buscadores.</li>
<li><!--[if !supportLists]--><span style="font-family: Symbol"><span><span style="font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal">  </span></span></span><!--[endif]-->Usuarios con problemas de accesibilidad que utilizan otros mecanismos para leer las páginas.</li>
</ul>
<p class="MsoNormal">Para poder llegar a todos estos usuarios es necesario que aquellas páginas que utilicen javascript para<span>  </span>lograr efectos AJAX avanzados degraden correctamente en inglés “gracefully degrade” o lo que es lo mismo que sean capaces de funcionar en ausencia de javascript u otra capacidad especial.</p>
<p class="MsoNormal">En el próximo post veremos un caso concreto y como resolverlo utilizando Prototype.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flash-free.org/2008/04/13/degradar-correctamente-en-ajax/feed/</wfw:commentRss>
		</item>
		<item>
		<title>e24TabMenu – Menú desplegable AJAX</title>
		<link>http://www.flash-free.org/2008/04/05/e24tabmenu-%e2%80%93-menu-desplegable-ajax/</link>
		<comments>http://www.flash-free.org/2008/04/05/e24tabmenu-%e2%80%93-menu-desplegable-ajax/#comments</comments>
		<pubDate>Sat, 05 Apr 2008 01:14:43 +0000</pubDate>
		<dc:creator>aartiles</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Menú]]></category>

		<category><![CDATA[Prototype]]></category>

		<category><![CDATA[Scriptaculous]]></category>

		<category><![CDATA[Componentes]]></category>

		<category><![CDATA[Efectos]]></category>

		<guid isPermaLink="false">http://www.flash-free.org/2008/04/05/e24tabmenu-%e2%80%93-menu-desplegable-ajax/</guid>
		<description><![CDATA[Introducción
e24TabMenu es un plugin de scriptaculous que permite hacer un tab menú que al clicar sobre sus pestañas se expanden hacia abajo.
Demos

Con todas las pestañas ocultas
Con una pestaña expandida por defecto

¿Cómo utilizarlo?
Incluya Prototype 1.6.0.2 y Scriptaculous 1.8.1 dentro del header del código HTML de la página. Incluya e24TabMenu después de ambos:
&#60;script type='text/javascript' src='js/prototype.js'&#62;&#60;/script&#62;
&#60;script type='text/javascript' src='/js/scriptaculous.js?load=effects'&#62;&#60;/script&#62;
&#60;script [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introducción</strong></p>
<p>e24TabMenu es un plugin de <a href="http://script.aculo.us/" target="_blank">scriptaculous</a> que permite hacer un tab menú que al clicar sobre sus pestañas se expanden hacia abajo.</p>
<p><strong>Demos</strong></p>
<ul>
<li><a href="http://www.flash-free.org/wp-content/files/e24tabmenu/index.html" class="lightwindow page-options" params="lightwindow_type=external" title="All tabs hidden" caption="Drop down ajax tab menu demo">Con todas las pestañas ocultas</a></li>
<li><a href="http://www.flash-free.org/wp-content/files/e24tabmenu/index2.html" class="lightwindow page-options" params="lightwindow_type=external" title="One tab expanded" caption="Drop down ajax tab menu demo">Con una pestaña expandida por defecto</a></li>
</ul>
<p><strong>¿Cómo utilizarlo?</strong></p>
<p>Incluya <a href="http://www.prototypejs.org/" target="_blank">Prototype 1.6.0.2</a> y <a href="http://script.aculo.us/" target="_blank">Scriptaculous 1.8.1</a> dentro del header del código HTML de la página. Incluya e24TabMenu después de ambos:</p>
<p><pre class="chili-all"><code class="javascript">&lt;script type='text/javascript' src='js/prototype.js'&gt;&lt;/script&gt;
&lt;script type='text/javascript' src='/js/scriptaculous.js?load=effects'&gt;&lt;/script&gt;
&lt;script type='text/javascript' src='js/e24tabmenu.js'&gt;&lt;/script&gt;</code></pre></p>
<p>Ahora escriba el código HTML necesario para definir el menú. Necesitaremos una capa contenedora (“menu” en el ejemplo) y dentro de la capa contenedora pondremos una capa para cada elemento del menú donde podremos añadir el contenido correspondiente. A continuación añada un enlace (etiqueta “A”) para cada pestaña del menú, el atributo “rel” debe tener como valor <em>e24menuitem[id_de_la_capa_del_contenido]</em> donde <em>id_de_la_capa_del_contenido</em> es el nombre de la capa que contiene el contenido del elemento de menú a desplegar (en el ejemplo “ítem_3d”, “ítem_gall”, “ítem_menu”, “ítem_efec”). Además, después de los enlaces podemos añadir contenido que aparecerá cuando el menú no tenga ninguna pestaña desplegada.</p>
<p><pre class="chili-all"><code class="javascript">&lt;div id=&quot;menu&quot; &gt;&lt;!---menu container--&gt; 
  &lt;div id=&quot;item_3d&quot; class=&quot;menutarget&quot;&gt; 
    Contenido
  &lt;/div&gt; 
 
  &lt;div id=&quot;item_gall&quot; class=&quot;menutarget&quot;&gt; 
    Contenido
  &lt;/div&gt; 
 
  &lt;div id=&quot;item_menu&quot; class=&quot;menutarget&quot;&gt; 
    Contenido
  &lt;/div&gt; 
 
  &lt;div id=&quot;item_efec&quot; class=&quot;menutarget&quot;&gt; 
    Contenido
  &lt;/div&gt; 
 
  &lt;!---tabs del menu--&gt; 
  &lt;a id=&quot;3d&quot; href=&quot;#3d&quot; rel=&quot;e24menuitem[item_3d]&quot;&gt;&lt;img src=&quot;img/3d.gif&quot; alt=&quot;Efectos 3D&quot; /&gt;&lt;/a&gt; 
  &lt;a id=&quot;gall&quot; href=&quot;#galerias&quot; rel=&quot;e24menuitem[item_gall]&quot;&gt;&lt;img src=&quot;img/galerias.gif&quot; alt=&quot;Galeria de fotos AJAX&quot; /&gt;&lt;/a&gt; 
  &lt;a id=&quot;menus&quot; href=&quot;#menus&quot; rel=&quot;e24menuitem[item_menu]&quot; &gt;&lt;img src=&quot;img/menus.gif&quot; alt=&quot;Efectos de Menus&quot; /&gt;&lt;/a&gt; 
  &lt;a id=&quot;efec&quot; href=&quot;#efectos&quot; rel=&quot;e24menuitem[item_efec]&quot;&gt;&lt;img src=&quot;img/efectos.gif&quot; alt=&quot;Otros efectos ajax&quot; /&gt;&lt;/a&gt; 
  &lt;!---tabs del menu--&gt; 
 
  &lt;div id=&quot;maincontent&quot;&gt; 
    Contenido principal 
  &lt;/div&gt;&lt;!--texto--&gt; 
&lt;/div&gt;&lt;!--menu container--&gt;</code></pre></p>
<p>Ahora veremos el código javascript necesario para el funcionamiento del menú, donde  pasaremos como primer parámetro el id de la capa contenedora del menú “menu” y un array de parámetros para el efecto.</p>
<p><pre class="chili-all"><code class="javascript">oe24TabMenu = new e24TabMenu( 'menu', { duration: 1.0, transition: Effect.Transitions.sinoidal } );</code></pre></p>
<p><strong>Todas las Opciones</strong></p>
<ul>
<li><em>duration</em>: Un valor decimal que representa el tiempo en segundos que durará el despliegue de la pestaña del menú. Valor por defecto: 1.0</li>
<li><em>transition</em>: Función que modifica cada punto de la animación:   Effect.Transitions.sinoidal (default),  Effect.Transitions.linear, Effect.Transitions.reverse, Effect.Transitions.wobble, Effect.Transitions.flicker</li>
<li><em>callback</em>: función que se llamará cuando se complete la animación, útil para concatenar animaciones.</li>
</ul>
<p><strong>Métodos</strong></p>
<ul>
<li><em>toggleMenu</em>: Despliega o expande una pestaña de menú según sea el caso. Requiere como parámetro el objeto referente al enlace correspondiente al elemento de menú en cuestión.<pre class="chili-all"><code class="javascript">oe24TabMenu.toggleMenu($('3d'));</code></pre></li>
</ul>
<p><strong>Errores conocidos y cosas por hacer</strong></p>
<ul>
<li>Permitir el menú en varias direcciones, de abajo hacia arriba, izquierda a derecha, derecha a izquierda.</li>
</ul>
<p><strong>Descargar</strong></p>
<p><a href="http://www.flash-free.org/wp-content/files/e24tabmenu/e24tabmenu.zip">e24TabMenu 0.8 beta</a> (176 KB)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flash-free.org/2008/04/05/e24tabmenu-%e2%80%93-menu-desplegable-ajax/feed/</wfw:commentRss>
		</item>
		<item>
		<title>e24Writer - Efecto de aparición progresiva</title>
		<link>http://www.flash-free.org/2008/03/20/e24writer-efecto-de-aparicion-progresiva/</link>
		<comments>http://www.flash-free.org/2008/03/20/e24writer-efecto-de-aparicion-progresiva/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 18:59:38 +0000</pubDate>
		<dc:creator>aartiles</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Javascript]]></category>

		<category><![CDATA[Prototype]]></category>

		<category><![CDATA[Scriptaculous]]></category>

		<category><![CDATA[Animaciones]]></category>

		<category><![CDATA[Componentes]]></category>

		<category><![CDATA[Efectos]]></category>

		<guid isPermaLink="false">http://dev.equipo24.com/blog/?p=3</guid>
		<description><![CDATA[Introducción
e24Writer es un plugin de scriptaculous que permite hacer una animación donde los elementos van apareciendo progresivamente mediante una transición de opacidad. Los elementos pueden ser imágenes, elementos HTML o texto.
Demos


Animación de Imágenes


Animación de un Texto


¿Cómo utilizarlo?
Incluya Prototype 1.6.0.2 y Scriptaculous 1.8.1 dentro de header del código HTML de la página. Incluya e24Writer después de [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Introducción</strong></p>
<p>e24Writer es un plugin de <a href="http://script.aculo.us/" title="scriptaculous" target="_blank">scriptaculous</a> que permite hacer una animación donde los elementos van apareciendo progresivamente mediante una transición de opacidad. Los elementos pueden ser imágenes, elementos HTML o texto.</p>
<p><strong>Demos</strong></p>
<ul>
<li>
<a href="http://www.flash-free.org/wp-content/files/e24Writer/images.html" class="lightwindow page-options" params="lightwindow_type=external" title="Animación de Imágenes" caption="Animación de Imágenes con javascript">Animación de Imágenes</a>
</li>
<li>
<a href="http://www.flash-free.org/wp-content/files/e24Writer/texto.html" class="lightwindow page-options" params="lightwindow_type=external" title="Animación de un Texto" caption="Animación de un Texto con javascript">Animación de un Texto</a>
</li>
</ul>
<p><strong>¿Cómo utilizarlo?</strong></p>
<p>Incluya <a href="http://www.prototypejs.org/" title="Prototype" target="_blank">Prototype 1.6.0.2</a> y <a href="http://script.aculo.us/" target="_blank" title="scriptaculous">Scriptaculous 1.8.1</a> dentro de header del código HTML de la página. Incluya e24Writer después de ambos</p>
<p><pre class="chili-all"><code class="html">&lt;script type='text/javascript' src='js/prototype.js'&gt;&lt;/script&gt;
&lt;script type='text/javascript' src='/js/scriptaculous.js?load=effects'&gt;&lt;/script&gt;
&lt;script type='text/javascript' src='js/e24writer.js'&gt;&lt;/script&gt;</code></pre></p>
<p>Este efecto consiste en hacer una aparición progresiva de un grupo de elementos, por ejemplo las letras de un texto. Para esto debemos separar cada uno de los elementos, si el texto a animar es una imagen entonces necesitaremos picar la imagen en cada una de las letras.</p>
<p>Ahora escriba el código HTML necesario para definir  el contenido a animar.  Necesitaremos una capa contenedora (“letters” en el ejemplo) y dentro de la capa contenedora pondremos una capa para cada elemento de la animación, por ejemplo una capa para cada letra.</p>
<p><pre class="chili-all"><code class="html">&lt;div id=&quot;letters&quot; &gt;
		&lt;div class=&quot;letter&quot;&gt;&lt;img src=&quot;img/letter1.jpg&quot; alt=&quot;letra1&quot; /&gt;&lt;/div&gt;
		&lt;div class=&quot;letter&quot;&gt;&lt;img src=&quot;img/letter2.jpg&quot; alt=&quot;letra2&quot; /&gt;&lt;/div&gt;
		&lt;div class=&quot;letter&quot;&gt;&lt;img src=&quot;img/letter3.jpg&quot; alt=&quot;letra3&quot; /&gt;&lt;/div&gt;
		&lt;div class=&quot;letter&quot;&gt;&lt;img src=&quot;img/letter4.jpg&quot; alt=&quot;letra4&quot; /&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre></p>
<p>A continuación escribimos el código javascript necesario para ejecutar la animación.  Le pasaremos como primer parámetro el id de la capa contenedora “letters” y un array de parámetros para el efecto.</p>
<p><pre class="chili-all"><code class="javascript">oe24Writer = new e24Writer( 'letters', { autostart: true, duration: 1.0, interval: 0.3 });</code></pre></p>
<p><strong>Todas las Opciones </strong></p>
<ul>
<li><em>autostart</em>:  Un valor booleano, si es true la animación se inicia automáticamente, si es false necesitaremos llamar al método start() para iniciar la animación. Valor por defecto:  false</li>
<li><em>duration</em>:  Un valor decimal que representa el tiempo en segundos que durará la transición de opacidad de cada elemento. Valor por defecto:  1.0</li>
<li><em>interval</em>:  Un valor decimal que representa el tiempo en segundos que pasará entre cada aparición de cada elemento. Valor por defecto:  0.3</li>
<li><em>callback</em>: función que se llamará cuando se complete la animación, útil para concatenar animaciones.</li>
</ul>
<p><strong>Métodos</strong></p>
<ul>
<li><em>start</em>:  No requiere parámetros, inicia la animación si el efecto se creó con el parámetro autostart como false.</li>
</ul>
<p><strong>Errores conocidos y cosas por hacer</strong></p>
<ul>
<li> Permitir varias hacer la animación en varias direcciones, izquierda-derecha, derecha-izquierda.</li>
<li>Permitir reiniciar la animación.</li>
</ul>
<p><strong>Descargar</strong></p>
<p><a href="http://www.flash-free.org/wp-content/files/e24Writer/e24writer.zip">e24Writer 0.4.1 beta</a> (71.33 KB)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flash-free.org/2008/03/20/e24writer-efecto-de-aparicion-progresiva/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
