<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LaWebera.es</title>
	<atom:link href="http://www.lawebera.es/feed" rel="self" type="application/rss+xml" />
	<link>http://www.lawebera.es</link>
	<description>Diseño de Páginas Web</description>
	<lastBuildDate>Wed, 16 May 2012 17:29:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Patrones de diseño web: Patrón Z y diagrama de Gutenberg</title>
		<link>http://www.lawebera.es/diseno-web/patrones-layout-patron-z-diagrama-gutenberg.php</link>
		<comments>http://www.lawebera.es/diseno-web/patrones-layout-patron-z-diagrama-gutenberg.php#comments</comments>
		<pubDate>Wed, 16 May 2012 17:28:52 +0000</pubDate>
		<dc:creator>Daniel Ernesto Navarro Herrera</dc:creator>
				<category><![CDATA[Diseño de Paginas Web]]></category>

		<guid isPermaLink="false">http://www.lawebera.es/?p=4702</guid>
		<description><![CDATA[Primera parte de un artículo donde exponemos algunos de los patrones de diseño web más comunes para realizar un layout, en esta entrega nos enfocamos en el patrón Z y el diagrama de Gutenberg.]]></description>
			<content:encoded><![CDATA[<p>Uno de los principales objetivos que se buscan al llevar a cabo la <a href="http://www.lawebera.es/maquetacion-web" title="Manual de maquetación">estructuración de una página web</a>, es que el contenido sea mostrado de manera adecuada para que el mensaje que se busca transmitir al usuario sea recibido de forma efectiva. Para lograr esto se recurre al uso de patrones de diseño web, los cuales ofrecen soluciones a problemas de percepción que se pueden presentar dentro de nuestro <a href="http://www.lawebera.es/diseno-web/consejos-diseno-buen-layout-o-estructura-web.php" title="El layout en diseño web">layout</a>.</p>
<p>Con los patrones de diseño se buscan crear estándares que de algún modo dicten las formas adecuadas de mostrar el contenido de un sitio web. Sin embargo no debemos pensar en ellos como reglas o imposiciones sobre la creatividad y alternancia que se puede presentar en un sitio, simplemente son sugerencias para el desarrollo las cuales nos indican qué partes son de mayor interés para la vista de los usuarios. </p>
<p>Son muchos los patrones de diseño que se han planteado a lo largo del tiempo, tenemos que especificar que esto viene de mucho tiempo antes a la <a href="http://www.lawebera.es/de0/" title="como hacer una pagina web">creación de las páginas web</a>. Con la imprenta y la creación de los primeros textos mediante este método, se empezaron a utilizar estructuras, las cuales con el tiempo demostraron que hay ciertas áreas donde la gente suele explorar o fijar más la vista.</p>
<p>En la actualidad aún seguimos utilizando esta <strong>clase de patrones de diseño web</strong>, la diferencia radica en que ahora con las páginas web tenemos más control sobre los tamaños y formas de presentación, por lo que se puede optar por un patrón no tan tradicional.</p>
<h2>Diagrama de Gutenberg en diseño web</h2>
<p>Este es quizás el patrón de diseño más utilizado en la historia, ya que la <a href="http://www.lawebera.es/de0/organizar-pagina-web.php" title="Como organizar una página web. Diseño de la estructura">estructura</a> que propone se puede ver representada tanto en escritos, carteles, publicidad e inclusive en la televisión. Lo que nos define este diagrama, en principio, es <strong>una estructura basada en el movimiento que sigue el ojo humano por inercia</strong>, este movimiento hace que se termine presentando más atención a ciertas partes del objeto desplegado, por lo que dichas partes toman más relevancia en el diseño.</p>
<p>Si nos decidimos en utilizar este patrón, entonces a la hora de realizar un diseño web debemos de tener muy en cuenta las siguientes indicaciones para distribuir ordenadamente todos los <a href="http://www.lawebera.es/de0/introduccion-elementos-etiquetas-html.php" title="Introducción a los elementos y etiquetas de HTML">elementos</a>: </p>
<ul>
<li>Nuestra área de exposición estará dividida en cuatro partes.</li>
<li>Cada cuadrante representa una zona óptica.</li>
<li>La más importante de ellas es la ubicada en la parte superior izquierda y recibe el nombre de zona primaria.</li>
<li>La siguiente en la estructura es la zona de barbecho fuerte, que se encuentra ubicada en el extremo superior derecho.</li>
<li>En la parte inferior izquierda encontramos la zona que presenta menos atención, la zona de barbecho débil.</li>
<li>Finalmente en la parte inferior derecha se encuentra la zona terminal.</li>
</ul>
<p>El hecho de utilizar este diagrama para la realización de nuestros diseños, traerá consigo una armonía con la gravedad normal de lectura, permitiendo al usuario seguir una orientación familiar, mejorando de esta manera la comprensión del contenido. </p>
<p>Este resultado se logra gracias a la costumbre, ya que las personas occidentales comúnmente realizan una <a href="http://www.lawebera.es/comunidad/articulos/accesibilidad-y-usabilidad/escanea-usuario-pagina-web.php" title="como escanea un usuario una pagina web">lectura </a>que va descendiendo por una serie de barridos hasta llegar a la zona terminal.</p>
<p>Para este <strong>patrón de diseño</strong> las zonas que presentan menor atención son la esquina superior derecha e inferior izquierda, y en caso de querer atraer atención a esas partes es necesario incluir un elemento llamativo que <a href="http://www.lawebera.es/comunidad/articulos/accesibilidad-y-usabilidad/escanea-usuario-pagina-web.php" title="enfasis en diseño web">enfatice </a>de alguna manera la zona. Es por esto que el contenido relevante debe seguir la diagonal que va de la esquina superior izquierda a la inferior derecha.</p>
<p>Un uso a este patrón que generalmente se da en los sitios web, es cuando se coloca el logo en la zona principal, el contenido importante se despliega en la zona de en medio y alguna información de contacto o de registro se coloca en la zona terminal.</p>
<p>Es recomendado utilizar este patrón cuando presentamos grandes cantidades de texto, si este no es tu caso y tienes bien definida una jerarquía visual, quizás sea recomendable utilizar otro tipo de patrón.</p>
<h2>Patrón Z en diseño web</h2>
<p>Como su nombre lo dice, este patrón se encarga de definir el diseño de un sitio en base a la forma de la letra Z. Los usuarios empezarán a percibir la información de la esquina superior izquierda, moviéndose horizontalmente hacia la esquina superior derecha, después de manera diagonal irán hasta la parte inferior izquierda para finalmente terminar con la parte inferior derecha.</p>
<p>Este patrón puede ser considerado como una contraparte al diagrama de Gutenberg, ya que propone un desplace diagonal inverso, y toma en cuenta las dos zonas que el diagrama considera poco relevantes. </p>
<p>Sin embargo, esta contraparte no se ve tan reflejada al momento de determinar las zonas de mayor relevancia, ya que en los dos patrones esta funcionalidad recae en la zona principal y terminal.</p>
<p>El patrón Z es recomendable para páginas con un diseño web simple, con pocos elementos que necesiten de completa atención, pero no por esto queremos dar a entender que sólo debe ser limitado a esta clase de diseños. Este tipo de <a href="http://www.lawebera.es/manual-de-jquery/animar-carga-contenidolayout-jquery.php" title="Cómo animar la carga de contenido en un layout con jQuery">layout</a> puede ser aplicado a casi cualquier proyecto de diseño web, ya que cumple con las necesidades básicas de cualquier sitio, presentar una marca, tener jerarquía, establecer una estructura y llamar a la interacción.</p>
<p>Existen otros patrones que se derivan de este, tal es el caso del <strong>patrón zig zag</strong>, que básicamente consiste en un conjunto de patrones Z que se van uniendo a lo largo de la página desplegada para continuar con el mismo seguimiento visual del contenido. Este podría ser considerado el movimiento natural en caso de que el usuario continuará leyendo la información que se encuentra debajo de la primera vista en nuestra página de inicio.</p>
<p>También encontramos al <strong>patrón del triángulo rectángulo</strong> que básicamente consiste en utilizar el patrón Z dando un movimiento de clausura distinto, en vez de mandar la atención a la zona inferior derecha, regresamos a la zona superior izquierda. De esta forma se forma un triángulo, dentro del cual debe de ir la información más relevante.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lawebera.es/diseno-web/patrones-layout-patron-z-diagrama-gutenberg.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instancias de clases y manejo de objetos con MooTools</title>
		<link>http://www.lawebera.es/mootools/instancias-clases-manejo-objetos-mootools.php</link>
		<comments>http://www.lawebera.es/mootools/instancias-clases-manejo-objetos-mootools.php#comments</comments>
		<pubDate>Tue, 08 May 2012 06:34:24 +0000</pubDate>
		<dc:creator>Daniel Ernesto Navarro Herrera</dc:creator>
				<category><![CDATA[Manual de MooTools]]></category>

		<guid isPermaLink="false">http://www.lawebera.es/?p=4695</guid>
		<description><![CDATA[En este artículo explicamos la manera de crear instancias de clases en MooTools con el fin de tener un mejor manejo de estado en las acciones.]]></description>
			<content:encoded><![CDATA[<p>Una de las principales razones por las que escoge <a href="http://www.lawebera.es/comunidad/articulos/programacion/por-que-usar-frameworks-javascript.php" title="¿Por qué debemos usar frameworks de Javascript?">usar un framework</a> es la facilidad en su manejo, ya que podemos realizar cientos de tareas comunes con tan solo unas cuantas líneas de código.</p>
<p>Al utilizar frameworks de JavaScript, como <a href="http://www.lawebera.es/manual-de-jquery" title="Manual de jQuery">jQuery</a> o <a href="http://www.lawebera.es/mootools" title="Manual de Mootools">Mootols</a>, es común recurrir a métodos encapsulados y atajos que nos permitan realizar alguna clase de acción de manera sencilla, sin tener que instanciar cada objeto o clase que necesitemos, y sin necesidad modificar alguna línea en el código base de la librería para llevar acabo una función. </p>
<p><a href="http://www.lawebera.es/mootools/introduccion-a-mootools.php" title="Introducción a MooTools">MooTools</a> no es la excepción a esta característica, por lo que existen muchas clases que cuentan con atajos sencillos y fáciles de recordar para el usuario, entre ellos encontramos &#8220;.load()&#8221;, &#8220;.morph()&#8221;, &#8220;.tween()&#8221;, entre otros, que al llamarlos cumplen con su función específica. </p>
<p>Sin embargo existe la posibilidad de que tu como diseñador o desarrollador web necesites realizar alguna alteración más específica en las propiedades de la clase, para ello <strong>se puede optar por crear instancias de las clases mediante objetos y obtener más control</strong>.</p>
<h2>Instanciar una clase con Mootools</h2>
<p>Con el propósito de ejemplificar, en este <a href="http://www.lawebera.es/mootools" title="Manual MooTools">artículo</a> utilizaremos la función &#8220;tweet&#8221; de MooTools, ya que es bastante sencilla y de uso muy común. Esta función se encarga de agregar efectos de animación al estilo CSS de los elementos a los que se les aplica.</p>
<p>Generalmente esta función es llamada al concatenar su atajo al selector del elemento que recibirá la acción, &#8220;$(elemento).tweet()&#8221;. Por defecto puede recibir tres parámetros, el primero de ellos para especificar la propiedad CSS que se verá afectada, el segundo indica el valor inicial y el tercero el valor que tendrá la propiedad al final de la transición.</p>
<pre class="brush: jscript; title: ; notranslate">
// modifica la altura de 'miElemento' de 20px a 200px:
$('miElemento').tween('height', [20, 200]);
</pre>
<p>Esto es de gran ayuda si queremos realizar simplemente la transición, pero si queremos lograr más control sobre las propiedades, tenemos que hacer uso de la clase que define esta función. Esta clase lleva por nombre <strong>&#8220;Fx.Tweet&#8221;</strong> y la manera de instanciarla es la siguiente:</p>
<pre class="brush: jscript; title: ; notranslate">
var tweenLaWebera = new Fx.Tween('miElemento');
</pre>
<p>Ahora la variable &#8220;tweenLaWebera&#8221; es un objeto que ha obtenido la funcionalidad de la clase Tween, por lo que <strong>ahora podemos hacer llamadas a las funciones &#8220;set&#8221; y &#8220;start&#8221;</strong>. Para llamar una de ellas basta con hacer esto:</p>
<pre class="brush: jscript; title: ; notranslate">
var tweenLaWebera.start('height', 200);
</pre>
<p>Esta es uno de los <a href="http://www.lawebera.es/mootools/mootools-vs-otros-frameworks-comparativa.php" title="MooTools vs otros frameworks. Comparativa">principios básicos de MooTools</a>, la creación de instancias de clase busca manejar su estado llamando métodos y estableciendo las propiedades de los objetos. </p>
<p>Tomemos el primer ejemplo que hicimos con el atajo &#8220;tweet&#8221;, ahora vamos a representarlo utilizando una instancia de la clase:</p>
<pre class="brush: jscript; title: ; notranslate">
var tweenLaWebera = new Fx.Tween('miElemento',{
  transition: 'bounce:out',
  duration: 1000
});

$('miElemento').addEvents({
  focus: function(){
    tweenLaWebera.start('height', 200);
  },
  blur: function(){
    tweenLaWebera.start('height', 20)
  }
});
</pre>
<p>Como se puede apreciar ahora el efecto es controlado por nosotros, y definimos en que momento se mandará llamar. </p>
<p>Lo que hicimos en el código fue básicamente crear el objeto, indicarle el tipo de transición que realizaremos y la duración de ésta, después mandamos llamar a la función &#8220;start&#8221; de dicho objeto cuando el elemento recibe dos diferentes eventos, cuando se encuentra enfocado el elemento aumentará su altura a 200 y cuando quitemos el enfoque de él su altura regresará a ser de 20.</p>
<h2>Opciones de una clase</h2>
<p>Como pudimos apreciar en el último ejemplo, la clase &#8220;Fx.Tween&#8221; obtiene dos argumentos en su constructor, el primero de ellos es el elemento al cual vamos a aplicar el efecto, mientras que el segundo es un objeto definido con varias propiedades u opciones. </p>
<p>Este segundo parámetro es el que se encarga de decirle a la clase como comportarse y para definirlo basta con establecer una variable en <a href="http://www.lawebera.es/manuales/javascript" title="Manual JavaScript">JavaScript</a> compuesta por valores de tipo &#8220;propiedad:valor&#8221; o simplemente poner esos valores dentro de la misma creación del objeto.</p>
<pre class="brush: jscript; title: ; notranslate">
//Alternativa 1
var opciones = {
  property: 'height',
  duration: 750,
  transition: 'bounce:out'
};

var tweenLaWebera = new Fx.Tween('miElemento', opciones);

//Alternativa 2
var tweenLaWebera = new Fx.Tween('miElemento',{
  property: 'height',
  duration: 750,
  transition: 'bounce:out'
});
</pre>
<p>Incluso podemos utilizar distintas opciones para cambiar el comportamiento de cada paso del proceso, en el ejemplo anterior manejamos una transición de tipo &#8220;bounce:out&#8221;, suponiendo que quisiéramos modificar este la segunda parte de este efecto, es decir cuando el elemento se vuelve a encoger, podemos realizar algo como esto:</p>
<pre class="brush: jscript; title: ; notranslate">
var tweenLaWebera = new Fx.Tween('miElemento',{
  transition: 'bounce:out',
  link: 'cancel',
  duration: 1000
});

var crece = function(){
  tweenLaWebera.options.transition = 'bounce:out';
  tweenLaWebera.start('height', 200);
};

var encoge = function(){
  tweenLaWebera.options.transition = 'quad:in:out';
  tweenLaWebera.start('height', 20);
};

$('miElemento').addEvents({
  focus: crece,
  blur: encoge
});
</pre>
<p>De esta manera al momento de crecer el elemento utilizará la transición &#8220;bounce:out&#8221; mientras que al encogerse de nuevo utilizará &#8220;quad:in:out&#8221;, esto logrará una animación personalizada.</p>
<h2>Eventos en Mootools</h2>
<p>En algunas ocasiones puede que deseemos realizar un proceso al momento de que el efecto empieza o finaliza, MooTools cuenta con <a href="http://www.lawebera.es/mootools/manejo-elementos-eventos-mootools.php" title="Introducción al manejo de elementos y eventos con MooTools">eventos</a>  personalizados para lograr este propósito. </p>
<p>La clase Fx.Tween hereda todo sus eventos de <a href="http://www.lawebera.es/mootools/librerias-mootools.php" title="Librerías MooTools">Fx</a> por lo que podemos utilizar las acciones <strong>&#8220;start&#8221; y &#8220;complete&#8221;</strong> para disparar nuestros procesos.</p>
<p>Por ejemplo, si quisiéramos cambiar el color del texto contenido en un textarea al momento de enfocarnos en él, pero sólo si la transición ha terminado, entonces <strong>tendríamos llamar a la opción &#8220;onComplete&#8221; dentro de la instancia</strong>. </p>
<p>Esto nos da como resultado un código como el siguiente:</p>
<pre class="brush: jscript; title: ; notranslate">
var tweenLaWebera = new Fx.Tween('miElemento',{
  transition: 'bounce:out',
  duration: 1000,
  link: 'chain',
  onComplete: function(){
    tweenLaWebera.element.toggleClass('focused');
  }
});

var crece = function(){
  tweenLaWebera.options.transition = 'bounce:out';
  tweenLaWebera.start('height', 200);
};

var encoge = function(){
  tweenLaWebera.options.transition = 'quad:in:out';
  tweenLaWebera.start('height', 20);
};

$('miElemento').addEvents({
  focus: crece,
  blur: encoge
});
</pre>
<p>Como ya mencionamos, en esta ocasión únicamente estamos utilizando la clase &#8220;Tweet&#8221; para ejemplificar, si requieres utilizar otra clase puedes recurrir a la <a href="mootools.net/docs/">documentación de MooTools</a> para saber que opciones puedes pasar como parámetro de la instancia.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lawebera.es/mootools/instancias-clases-manejo-objetos-mootools.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Factores relevantes sobre el uso de floats en el layout</title>
		<link>http://www.lawebera.es/maquetacion-web/factores-uso-floats-layout.php</link>
		<comments>http://www.lawebera.es/maquetacion-web/factores-uso-floats-layout.php#comments</comments>
		<pubDate>Fri, 04 May 2012 22:22:10 +0000</pubDate>
		<dc:creator>Daniel Ernesto Navarro Herrera</dc:creator>
				<category><![CDATA[Manual de Maquetacion Web]]></category>

		<guid isPermaLink="false">http://www.lawebera.es/?p=4691</guid>
		<description><![CDATA[En este artículo explicamos los puntos más importantes a tener en consideración para lograr un uso correcto de la propiedad float al momento de aplicarse a los elementos que forman parte en nuestro layout.]]></description>
			<content:encoded><![CDATA[<p>Durante muchos años, el uso de la <a href="http://www.lawebera.es/como-hacer/ejemplos-css/guia-css-propiedad-float-clear-estructurar-web.php" title="Guía CSS: propiedad float">propiedad float</a> para el posicionamiento de elementos dentro de un layout, ha representado uno de los mayores retos y dolores de cabeza para los diseñadores web que se han aventurado a utilizarla sin tener conocimiento exacto de su funcionamiento o correcta implementación. </p>
<p>Y no es para menos, puesto que float es uno de los conceptos menos aprehensibles por la intuición y cuando esta propiedad es utilizada generalmente obtenemos como resultado algo que no esperábamos.</p>
<p>Al utilizar elementos posicionados mediante float de manera incorrecta, estos pueden causar grandes problemas de visibilidad y <a href="www.lawebera.es/de0/usabilidad.php" title="Usabilidad web. Principios básicos :: Empezar de Cero una Web">usabilidad</a> a nuestros sitios, rompiendo muchas veces con el layout disponible y haciendo que trabajemos el doble con tal de lograr un comportamiento más o menos deseable. </p>
<p>Es por ello muchos diseñadores prefieren llegar al extremo de evitar completamente su uso, omitiendo el hecho de que los layouts realizados mediante elementos flotantes son uno de los más adecuados a los estándares.</p>
<p><strong>El problema no radica en la propiedad en si, lo hace en la forma en que ésta es interpretada por los desarrolladores, diseñadores y alguno que otro navegador</strong>. Por esta malinterpretación, su concepto es considerado algo tan escasamente intuitivo; sin embargo, si echamos un vistazo a su teoría y documentación veremos que no es algo realmente tan complejo como parece, ya que la mayoría de los problemas y bugs son producidos por versiones antiguas de navegadores, en su mayoría de Internet Explorer.</p>
<h2>Puntos importantes sobre los elementos flotantes</h2>
<ul>
<li>Para encontrar la razón por la que se dio el nacimiento de la propiedad float en CSS, nos tendríamos que remontar mucho tiempo atrás en la historia del Internet, al punto donde los desarrolladores web buscaron obtener la habilidad para <strong>mostrar un texto alrededor de las imágenes</strong> que se desplegaban en los navegadores.
<p>Dicha práctica llego a ser implementada a partir de Netscape 1.1 y tiempo después fue añadida al nuevo lenguaje de estilo al cual se le dio el nombre de CSS.</li>
<li>El término &#8220;float&#8221; fue utilizado para describir la manera en que el elemento flota de un lado a otro, de arriba hacia abajo, al momento de poseer esta propiedad y sin necesidad de aplicar algo más que intervenga en su posición.
<p>Si bien <strong>su función se describe desde las primeras mejoras que se hicieron a la versión 2 del lenguaje HTML</strong>, fue hasta su implementación en CSS cuando empezó a tener un reconocimiento público y a la par de esto empezaron a surgir la mayoría de las malinterpretaciones de la propiedad.</li>
<li>Una <a href="http://www.lawebera.es/como-hacer/ejemplos-css/usar-capas-flotantes-float-overflow.php" title="CSS: Correcto uso de capas flotantes (float) con overflow">capa o caja</a> que reciba la propiedad float tendrá un comportamiento especial, distinto al del resto de los elementos que son posicionados con otros métodos, puesto que al principio el elemento que cuente con esta propiedad si se posiciona como parte del flujo normal, pero en cierto punto se saca del flujo y se desplaza hacia la izquierda o derecha de nuestra página retirándose lo más posible.
<p>Cuando un elemento es retirado del flujo normal, todo el contenido que se encuentra dentro de ese flujo tiende a ignorar a dicho elemento por completo y por lo tanto no hace espacio para que sea ocupado por éste.</li>
<li>Al momento de asignarle la propiedad float, el elemento se convierte en un bloque, en una caja la cual puede variar su <a href="http://www.lawebera.es/maquetacion-web/maquetar-paginas-web-posicion-capas-ii.php" title="Maquetación de páginas web: posición de las capas (segunda parte)">posición</a> oscilando de izquierda a derecha dependiendo del valor que reciba la propiedad. Las opciones en el marcado serían básicamente tres, <strong>&#8220;float: left&#8221;, &#8220;float right&#8221; o &#8220;float: none&#8221;</strong>, para dar un alineado a la izquierda, derecha o simplemente no dar la propiedad.</li>
<li>Tenemos que recordar siempre dar un ancho a los elementos que reciban la propiedad, este debe ser especificado mediante la propiedad width, ya que en caso de no contar con esta medida los resultados al momento de aplicar float pueden resultar poco predecibles. Esta regla se puede romper en caso de que apliquemos la propiedad a una imagen que ya tiene un ancho implícito, pero <strong>si un elemento float no tiene un ancho explícito o implícito en sus propiedades, ocupará todo su bloque contenedor de manera horizontal</strong>, imitando el comportamiento de los elementos no flotantes y no dejando la posibilidad de que el resto del contenido lo rodee.</li>
<li>A diferencia de las cajas en el flujo normal, <strong>los márgenes verticales de una caja flotante no se contraen con los márgenes de las cajas que se encuentran encima o debajo de ella</strong>. Además, una caja flotante puede superponer otras cajas a nivel de bloque adyacentes a ella en el flujo normal.</li>
<li>Un elemento flotante siempre ocupará un lugar al extremo izquierdo o derecho del elemento que lo contiene, <strong>no existe tal costa como un float centrado</strong>, algo que puede ser difícil de entender si vas empezando con el diseño web, pero fácil de recordar conforme avanzas en la práctica.</li>
<li>Cuando hacemos flotar un elemento este se coloca hasta el extremo borde de la dirección que indicamos, ya sea derecha o izquierda, <strong>si después de esto hacemos flotar otro elemento y lo mandamos a la misma dirección, este se va a desplazar hasta que alcance el borde del primer elemento flotante</strong>. Si seguimos flotando elemento en la misma dirección estos se irán acumulando hasta que no haya suficiente espacio, cuando esto ocurre se empezaran a desplazar hacia abajo del layout hasta que todos quepan.</li>
<li>Al momento de utilizar la propiedad tenemos que estar concientes de que la <a href="http://www.lawebera.es/maquetacion-web/centrar-vertical-con-css-ii.php" title="Métodos para centrar verticalmente con CSS: Parte 2">posición vertical</a> del elemento será la que comúnmente ocuparía si estuviera dentro del flujo normal, mientras que la posición horizontal dependerá de la caja contenedora del elemento, si no esta dentro de ninguna otra capa o caja, entonces la ventana el cuerpo de nuestro documento será su límite.</li>
<li>Todas las cajas que sean creadas antes o después del elemento flotante, fluirán verticalmente de manera normal como si el elemento no existiera. Sin embargo, <strong>aquellas cajas que sean creadas al lado de la flotante serán acortadas con fin de dar espacio para que ésta se muestre</strong>.</li>
<li>Si queremos <a href="http://www.lawebera.es/maquetacion-web" title="Manual Maquetación Web">elaborar un layout</a> utilizando únicamente elementos de tipo div con la propiedad &#8220;float: left&#8221;, estos se alinearán uno tras otro formando columnas. Si al final de este layout quisiéramos agregar un footer o una caja que abarque de manera completa la pantalla, basta con aplicar la propiedad <a href="http://www.lawebera.es/como-hacer/ejemplos-css/guia-css-propiedad-float-clear-estructurar-web.php">&#8220;clear: both&#8221;</a> a dicho elemento, de esa manera no importa el tamaño de las columnas que se crearon.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lawebera.es/maquetacion-web/factores-uso-floats-layout.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducción al manejo de elementos y eventos con MooTools</title>
		<link>http://www.lawebera.es/mootools/manejo-elementos-eventos-mootools.php</link>
		<comments>http://www.lawebera.es/mootools/manejo-elementos-eventos-mootools.php#comments</comments>
		<pubDate>Wed, 02 May 2012 12:34:46 +0000</pubDate>
		<dc:creator>Daniel Ernesto Navarro Herrera</dc:creator>
				<category><![CDATA[Manual de MooTools]]></category>

		<guid isPermaLink="false">http://www.lawebera.es/?p=4685</guid>
		<description><![CDATA[En esta entrega del manual empezaremos a manejar MooTools dentro del código de la página, haremos uso de la librería para manipular elementos, así como añadir y remover eventos.]]></description>
			<content:encoded><![CDATA[<p>Como ya fue definido en artículos anteriores <a title="Manual de MooTools" href="http://www.lawebera.es/mootools">Mootools</a>, es una <strong>librería Javascript</strong> la cual debe de ser cargada en nuestro código HTML antes de realizar cualquier acción. </p>
<p>Como en esta ocasión haremos uso del core del framework para poder elaborar los ejemplos, tenemos que cargarlo en el inicio de nuestro código tal como se indicó en el artículo <a title="Empezando con MooTools" href="http://www.lawebera.es/mootools/empezar-con-mootools.php">&#8220;Empezando con MooTools&#8221;</a> de este manual.</p>
<p>Al igual que con jQuery, tenemos la opción de cargarlo de dos maneras distintas, ya sea descargando el core y los módulos que queremos utilizar o simplemente haciendo llamada a la API de Google que nos proporciona el código. La manera de carga que elijamos dependerá de la forma en que quieras desarrollar y si tendrás una conexión constante a Internet.</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/mootools/1.4.5/mootools.js&quot;&gt;&lt;/script&gt;
</pre>
<h2>Elementos y eventos de Mootools</h2>
<p>Para poder empezar a manipular el DOM de nuestra página debemos tener en mente todas las partes que lo conforman, cada una de estas es considerada un elemento y generalmente son definidas por una etiqueta HTML que se encarga de añadirlo a la interfaz. En una misma página podemos tener elementos de tipo imagen, sonido, texto o de estilo, todos ellos tomando parte del <a href="http://www.lawebera.es/como-hacer/ejemplos-jquery/creacion-elementos-dom.php" title="Fundamentos de jQuery: Creación de elementos DOM">DOM</a>.</p>
<p>Todos los elementos que conforman la página pueden ser manipulados de manera individual, cada uno puede recibir ciertas acciones que se encargarán de llevar a cabo alguna clase de proceso. </p>
<p>A estas acciones se les llaman <strong>eventos</strong>, y se encargan de capturar la interacción del usuario con el sitio para poder desencadenar alguna otra tarea.</p>
<h2>Evento de carga en Mootools</h2>
<p>El primer evento que surge dentro de una página es la carga de esta, no hay ningún elemento en particular que lo mande llamar, más bien es el conjunto de elementos que al estar totalmente cargados hacen que esta función pueda entrar en juego para llamar el código que tiene en su interior.</p>
<p>Debido a que no hay un elemento que reciba la acción, muchas veces la definición de este evento puede resultar confusa para la persona que va empezando a programar con JavaScript. En el caso de MooTools, la librería cuenta con dos funciones que nos ayudan a capturar este evento y poder llevar un proceso inmediatamente después de que la página se ha cargado.</p>
<p>Este par de funciones llevan por nombre <strong>&#8220;load&#8221; y &#8220;domready&#8221;</strong>, son sencillas y prácticamente hacen lo mismo, la única diferencia es que &#8220;domready&#8221; entra en acción antes de que las imágenes de nuestro sitio se carguen, mientras que &#8220;load&#8221; espera a que realmente todo el sitio se encuentre visible y listo.</p>
<p>En base a esto, se puede pensar que &#8220;load&#8221; es una mejor función para manipular la carga de un sitio, y puede que tengas razón, pero todo dependerá de lo que desees hacer. </p>
<p>Si en tu trabajo necesitas calcular las dimensiones de un objeto, imagen, o la posición final, entonces &#8220;load&#8221; si es la mejor opción para ti, pero generalmente <strong>la función &#8220;domready&#8221; es la más utilizada</strong>, ya que permite un inicio de proceso más rápido sin tener que esperar la carga de elementos que en ocasiones pueden ser muy pesados.</p>
<p>La manera de codificar dichas funciones es la siguiente:</p>
<pre class="brush: jscript; title: ; notranslate">
window.addEvent('domready', function(){
    //Aquí podemos realizar cualquier acción que queramos se lleve a cabo después de cargar la página.
     alert(&quot;Hola La Webera!&quot;);
});

window.addEvent('load', function(){
    //Aquí podemos realizar cualquier acción que queramos se lleve a cabo después de cargar la página, incluso cálculos con imágenes.
});
</pre>
<h2>Manipulación de elementos con Mootools</h2>
<p>Como ya se dijo, cada elemento puede recibir varios eventos los cuales a su vez se encargarán de realizar algún proceso, pero para poder llegar a eso debemos saber como manipularlos. </p>
<p>Lo primero que tenemos que hacer es seleccionar el o los elementos que queremos reciban la acción, para ello contamos con <strong>los selectores</strong> que en el caso de MooTools son definidos dentro de dos funciones: <strong>$() o $$()</strong>.</p>
<p>La función $() muchas veces es vista como un atajo para la sentencia &#8220;document.getElementById()&#8221; de JavaScript y generalmente esa es su función, pero aparte de recibir un ID, esta función también puede recibir elementos del DOM.</p>
<p>La manera en que esta función diferencia si el desarrollador envía un elemento o un ID, es que cuando recibe una cadena inmediatamente lo procesa como ID y va en busca de dicho elemento, en cambio cuando se pasa una referencia a un elemento simplemente lo envuelve para aplicarle las funciones posteriores.</p>
<pre class="brush: jscript; title: ; notranslate">
var elemDiv = $('laWeberaDiv'); // Elemento MooTools formado por el div con id 'laWeberaDiv'
</pre>
<p>En el caso de la función $$(), esta es utilizada para obtener una serie de elementos, es decir al momento de introducir un parámetro a la función se nos regresará un arreglo con todos los elementos que cumplan con el selector.</p>
<p>Se puede pensar como un atajo de la función &#8220;document.getElementsByTagName()&#8221; de JavaScript, pero además de rastrear un objeto por su tipo, puede recibir <a title="Selectores personalizados" href="http://www.lawebera.es/manual-de-jquery/elementos-jquery-selectores-personalizados.php">selectores CSS</a> como parámetro lo cual aumenta su poder.</p>
<pre class="brush: jscript; title: ; notranslate">
var arrDiv = $$('div'); // Arreglo de elementos de tipo div
</pre>
<p>En base a esto podemos desarrollar un pequeño código que nos permita cambiar el color de todos los links que sean de cierta clase dentro de una página, y que todo esto se haga al momento de cargar la página.</p>
<pre class="brush: jscript; title: ; notranslate">
window.addEvent('domready', function(){
    $$('a.linkLaWebera').setStyle('color', 'steelblue');
});
</pre>
<h2>Conclusión</h2>
<p>Como se pudo observar en este artículo, el manejo de elementos y su manipulación con eventos es un proceso bastante sencillo. Si ya has desarrollado con anterioridad para JavaScript, o mejor aún si ya habías utilizado un framework anteriormente, no te resultará nada difícil poder dominar este tema.</p>
<p>El uso de selectores puede ser el tema más difícil a tratar, sobre todo si vienes de trabajar con <a title="Manual de jQuery" href="http://www.lawebera.es/manual-de-jquery">jQuery</a>, pero nada que la practica no pueda remediar, solo recuerda utilizar siempre doble signo de moneda para traer un arreglo de elementos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lawebera.es/mootools/manejo-elementos-eventos-mootools.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Qué puede hacer un freelance sin Internet?</title>
		<link>http://www.lawebera.es/diseno-web-freelance/freelance-sin-internet.php</link>
		<comments>http://www.lawebera.es/diseno-web-freelance/freelance-sin-internet.php#comments</comments>
		<pubDate>Thu, 26 Apr 2012 23:13:11 +0000</pubDate>
		<dc:creator>Daniel Ernesto Navarro Herrera</dc:creator>
				<category><![CDATA[Diseño Web Freelance]]></category>

		<guid isPermaLink="false">http://www.lawebera.es/?p=4681</guid>
		<description><![CDATA[En este artículo exponemos algunas actividades que un freelancer puede realizar sin necesidad de tener una conexión a Internet.]]></description>
			<content:encoded><![CDATA[<p><strong>Internet es sin duda la mejor herramienta con la que podemos contar hoy en día</strong>, gracias a ella nuestras investigaciones se vuelven mucho más rápidas, sencillas y precisas, tenemos a un clic un sin fin de fuentes distintas que nos permiten conocer más de un tema en pocos minutos, y tener en mente algo que hace unos instantes ni siquiera conocíamos. Gracias a Internet podemos mantenernos en contacto con cientos de personas, entre ellos clientes y <a href="http://www.lawebera.es/diseno-web-freelance/porque-relacionarnos-otros-disenadores-freelance.php" title="Razones por las que debemos relacionarnos con otros diseñadores freelance">colegas</a> que nos ayudan a llevar a cabo nuestros procesos y mantener nuestra organización.</p>
<p>Por obvias razones, para todos aquellos que nos dedicamos a diseñar o desarrollar páginas web, Internet se convierte en algo esencial, algo que incluso puede llegar a ser vital para nuestro negocio, ya que sin una <a href="http://www.blog.lawebera.es/comprobar-la-velocidad-de-tu-conexion-a-internet/" title="Comprobar la velocidad de mi conexión a Internet">conexión de salida</a> en teoría no tendríamos manera de obtener y realizar nuestro trabajo. Es prácticamente imposible trabajar como diseñador web sin tener acceso a la red mundial y <strong>el simple hecho de perder conexión durante un largo período se convierte en el mayor de los temores para muchos diseñadores freelance</strong>.</p>
<p>Para muchos <a href="http://www.lawebera.es/diseno-web-freelance" title="Manual Freelance">freelancers</a> el perder la señal de Internet puede resultar un hecho muy frustrante, al poco tiempo pueden perder orientación, caer en el aburrimiento y omitir el resto de las formas que existen para realizar un trabajo. Esta clase de comportamiento puede pasarse por alto por un par de horas, pero si a nuestro proveedor de Internet se le ocurre dejarnos sin servicio durante un par de días las cosas se pueden llevar a complicar si no hacemos algo al respecto.</p>
<h2>Busca conexiones alternas</h2>
<p>Si después de realizar pruebas y esperar un tiempo has llegado a la conclusión de que el servicio de Internet no regresará pronto, es hora de buscar alternativas. <strong>Puedes optar por utilizar tu móvil para navegar</strong>, aunque sinceramente resulta algo incómodo si lo que necesitas es desarrollar o peor aún diseñar en alguna clase de editor.</p>
<p>Si deseas el paquete completo, entonces puedes tomar tu laptop e <strong>ir en búsqueda de alguna conexión perdida</strong>, si en tu <a href="http://www.lawebera.es/diseno-web-freelance/disenador-productivo-trabajar-en-casa.php" title="Como ser un diseñador freelance productivo trabajando desde casa">casa</a> no llega el servicio, puede que a la del vecino sí llegue. Con esto no queremos decir que tengas que robar Internet, si tienes una cordial relación con alguno de tus vecinos puedes llegar a un acuerdo para utilizar su conexión momentáneamente.</p>
<p>Otra alternativa es <strong>ir a algún restaurante, café o bar que cuente con alguna clase de conexión privada</strong>, puedes preguntar a los empleados por la contraseña y el precio tan sólo será el consumo de alguno de sus productos.</p>
<p>Si el <a href="http://www.lawebera.es/diseno-web-freelance/cuanto-cobrar-trabajo-disenador-web.php" title="¿Cuánto cobrar por mi trabajo como diseñador web freelance?">presupuesto es corto</a> o simplemente no quieres tener que oír el ruido que se produce en alguno de estos establecimientos siempre queda otra opción, puedes <strong>ir en busca de algún parque o sitio público con conexión a Internet</strong>. Generalmente las bibliotecas son lugares muy tranquilos con buena conexión, también las universidades o parques tecnológicos puedes ofrecer el servicio gratis.</p>
<h2>Cuando Internet no es una opción</h2>
<p>Puede que hayas llegado al punto donde quemaste todas tus alternativas y no encontraste ninguna conexión, o puede que hayas decidido <a href="http://www.lawebera.es/diseno-web-freelance/disenador-freelance-crisis.php" title="Ser diseñador freelance en tiempos de crisis">cancelar tu servicio</a> de Internet por un tiempo por cuestiones de presupuesto y por ello te ves envuelto en esta situación, en cualquiera de estos casos lo único que queda es tratar de sacar provecho al tiempo con los recursos que dispones.</p>
<p>Tratando de ver siempre lo positivo tienes que recordar que <strong>para desarrollar no hace falta tener una conexión permanente</strong>. Sí, resulta bastante cómodo tener una biblioteca a nuestra disposición dentro del buscador, pero también existen libros y material de apoyo con el cual de seguro todavía muchos de nosotros contamos gracias a nuestra vida como estudiantes.</p>
<p>Para probar tus sitios y diseños puedes instalar un servidor web local, esto si aún no lo tienes, para descargarlo tendrías que tener Internet por un momento pero basta con unos cuantos minutos. Si no puedes conseguir eso, aún puedes usar tu navegador para probar únicamente sitios que realices con HTML y JavaScript.</p>
<h2>Actividades que podemos realizar sin Internet</h2>
<p>Es díficil pensar en las cosas que solíamos hacer antes de que Internet formará parte fundamental de nuestro trabajo, pero basta con echar un vistazo a nuestro alrededor y ver el resto de herramientas con las que contamos para llevar a puerto nuestros proyectos.</p>
<p>Para mantener el contacto con nuestros <a href="http://www.lawebera.es/diseno-web-freelance/como-conseguir-clientes-disenador-web.php" title="¿Cómo conseguir clientes como diseñador web?">clientes</a> podemos <strong>realizar algunas llamadas</strong>, incluso puedes ganar algunos puntos por hacer esto, ya que muchos clientes prefieres una llamada a un correo electrónico, pero si la situación es contraria, evita llamar a esos clientes y espera un mejor momento.</p>
<p>Para mejorar tu avance en los procesos puedes llevar a cabo una <strong>revisión de tus objetivos</strong> con el fin de fijar algunos que vayan más allá del siguiente mes, también puedes <strong>examinar tu itinerario de tareas</strong> y tratar de optimizarlo de ser necesario, <strong>revisar tu lista de clientes</strong> para ver quienes ya no merecen estar ahí o a quien más puedes incluir, e incluso se puede optar por <strong>realizar un tipo de contabilidad rápida</strong> comprobando que nuestro presupuesto puede rendir hasta el punto deseado.</p>
<p>Si tienes algún blog o sitio donde generalmente publicas contenido, <strong>puedes escribir mientras esperas que regresa la conexión</strong>. El preparar artículos generalmente lleva consigo algún tipo de investigación, pero por el momento puedes omitir esta parte y dar preferencia a la estructuración de tus conocimientos, de esa manera te resultará más sencillo terminar el contenido a publicar una vez que tengas Internet.</p>
<p>Si las investigaciones no pueden esperar más tiempo o estás ansioso por seguir aprendiendo, puedes <strong>echar un vistazo a todos los libros físicos o electrónicos que has comprado</strong> y que por alguna u otra razón no has podido leer.</p>
<p>Por increíble que parezca el <strong>no tener conexión a Internet nos ayuda a reflexionar</strong> más sobre aspectos muy relevantes para nuestra persona y negocio, los cuales tendemos a omitir por la velocidad con la que trabajamos y el ritmo de vida que llevamos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lawebera.es/diseno-web-freelance/freelance-sin-internet.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cómo animar la carga de contenido en un layout con jQuery</title>
		<link>http://www.lawebera.es/manual-de-jquery/animar-carga-contenidolayout-jquery.php</link>
		<comments>http://www.lawebera.es/manual-de-jquery/animar-carga-contenidolayout-jquery.php#comments</comments>
		<pubDate>Tue, 24 Apr 2012 06:29:56 +0000</pubDate>
		<dc:creator>Daniel Ernesto Navarro Herrera</dc:creator>
				<category><![CDATA[Manual de jQuery]]></category>

		<guid isPermaLink="false">http://www.lawebera.es/?p=4674</guid>
		<description><![CDATA[Hacemos uso del método load de jQuery para cargar datos mediante llamadas AJAX, al mismo tiempo que utilizamos animaciones para lograr efectos en la transición.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.lawebera.es/manual-de-jquery/animaciones-jquery.php" title="Animaciones jQuery">La animación constituye una parte fundamental de jQuery</a>, es considerada uno de sus principales atractivos y gracias a ella en sus inicios pudo atraer a varios usuarios que se convirtieron con el tiempo en fieles seguidores del framework. La manera flexible y sencilla en que <strong>jQuery nos permite anidar animaciones y al mismo tiempo manejar data</strong>, hace que el diseñador no tenga que reinventar la rueda cada vez que necesite realizar una transición animada, además de que evita realizar el doble de trabajo.</p>
<p>Con este tutorial trataremos de demostrar la capacidad de carga y animación de <a href="http://www.lawebera.es/manual-de-jquery" title="Manual de jQuery. Manual de la librería JavaScript jQuery.">jQuery</a>, tomando un layout sencillo y agregándole las mejoras ofrecidas por el framework. Haremos uso de la funcionalidad AJAX para lograr la carga datos en el contenedor del layout, de esa manera el usuario no necesitará dejar la página para poder ver más información, al mismo tiempo integraremos algunos efectos de animación de fácil codificación pero de resultados significantes.</p>
<div class="ejemplos clearfix">
   <a class="sprites descargar" href="/descargas/jquery/animacionycarga.zip">Descargar</a> <a class="sprites ejemplo" href="/ejemplos/jquery/animacion-carga/1.html">Ver ejemplo</a>
</div>
<h2>Layout de la página</h2>
<p>El primer paso es crear un <a href="http://www.lawebera.es/maquetacion-web" title="Maquetación Web">layout sencillo</a> que sirva para ejemplificar la carga de contenido, para ello simplemente utilizaremos un menú y un contenedor, de esa manera al dar clic en alguna de las opciones del menú, la información del contenedor <strong>cambiará sin necesidad de tener que cargar la página por separado</strong>. Nuestro código HTML lucirá de la siguiente manera:</p>
<pre class="brush: xml; title: ; notranslate">
    &lt;div id=&quot;wrapper&quot;&gt;
    &lt;h1&gt;La Webera&lt;/h1&gt;
    &lt;ul id=&quot;menu&quot;&gt;
        &lt;li&gt;&lt;a href=&quot;1.html&quot;&gt;Sección 1&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;2.html&quot;&gt;Sección 2&lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href=&quot;3.html&quot;&gt;Sección 3&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
    &lt;div id=&quot;contenedor&quot;&gt;
        &lt;h2&gt;jQuery&lt;/h2&gt;
        &lt;p&gt;Carga y animación de contenido&lt;/p&gt;
    &lt;/div&gt;
</pre>
<p>Una vez realizada la estructura, tenemos que asegurarnos de cargar la versión más reciente de jQuery, para ello puedes bajar el código directamente de su sitio, o simplemente hacer referencia al repositorio de Google donde se encuentra. Esto depende de la manera en que queremos trabajar, al cargar el código de jQuery desde Google es muy probable que el usuario ya lo tengo cargado en su máquina por lo que no será necesario una petición extra a tu servidor, pero tiene la desventaja de depender de alguien externo.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js&quot;&gt;&lt;/script&gt;
</pre>
<h2>Manejo de métodos y eventos con jQuery</h2>
<p>Una vez definida la estructura HTML tenemos que empezar a pensar en lo que queremos cambiar dinámicamente, para ello haremos uso de la librería jQuery, previamente cargada. Cuando se utiliza jQuery tenemos que pensar en eventos, un evento es una acción que realiza el usuario, como un clic, una tecla aplastada o pasar el ratón sobre un elemento, dichos eventos pueden ser utilizados para identificar cuando llevar a cabo ciertas acciones.</p>
<p>En este caso habíamos planeado cargar el nuevo contenido cada vez que el usuario diera clic en el menú, entonces ese clic se convertirá en el evento que queremos manejar. Para realizar esto, jQuery nos ofrece una estructura bastante fácil y sencilla, basta con <a href="http://www.lawebera.es/manual-de-jquery/elementos-jquery-obtencion.php">escoger el elemento</a> que recibe la acción mediante un selector, el cual <strong>puede ser su ID, una de sus clases, su tipo o alguna expresión que indique uno de sus atributos</strong>.</p>
<p>En nuestra estructura todos los links del menú son parte de una lista desordenada que tiene un ID que la identifica, en base a esto podemos elaborar nuestro selector. Después de englobar todos los elementos que recibirán la acción, tenemos que indicar el evento, en este caso es un clic y para ello jQuery utiliza un método que sencillamente lleva el nombre &#8220;click&#8221;, el cual se anida al <a href="http://www.lawebera.es/como-hacer/ejemplos-jquery/fundamentos-selector-funcion-jquery.php">selector</a> y posteriormente se indica la acción a realizar.</p>
<pre class="brush: jscript; title: ; notranslate">
jQuery('#menu li a').click(function(){
    // Aqui irá la acción de carga de contenido
});
</pre>
<h2>Cargar el contenido</h2>
<p><strong>La acción de carga de contenido estará dividida en dos partes, primero tenemos que remover lo que ya existía en el contenedor y después cargar el nuevo contenido</strong>. Para lograr definir la página que contiene los datos que queremos mostrar, lo primero que tenemos que hacer es obtener el atributo &#8220;href&#8221; del link que fue seleccionado en el menú, para ello pondremos la siguiente línea dentro del evento que definimos con <a href="http://www.lawebera.es/como-hacer/ejemplos-jquery" title="Ejemplos jQuery">jQuery</a>:</p>
<pre class="brush: jscript; title: ; notranslate">
var pagina_a_cargar = jQuery(this).attr('href')+' #contenedor';
</pre>
<p>Con esta sentencia, al momento de dar clic sobre una opción del menú asignaremos a la variable un valor con la página de destino y el id del contenedor donde queremos cargarlo, <strong>esto será enviado con la llamada AJAX en el método &#8220;load&#8221; de jQuery para que reemplace el contenido</strong>. </p>
<p>Para lograr una transición animada podemos recurrir a un efecto sencillo, en vez de hacer que el contenido simplemente desaparezca en un instante, haremos uso de la función &#8220;hide&#8221; de jQuery para que se oculte a cierta velocidad y mande llamar a otra función que declararemos más adelante, la cual se encargará de cargar el contenido:</p>
<pre class="brush: jscript; title: ; notranslate">
jQuery('#contenedor').hide('fast', cargarContenido);
</pre>
<p>Esto hará lo necesario para ocultar el viejo contenido, ahora necesitamos mostrar el nuevo y para ello elaboraremos una serie de funciones que se encargarán de llevar acabo el proceso y animarlo. La primera función a definir es &#8220;cargarContenido&#8221; la cual es llamada al aplicar el efecto hide al contenedor.</p>
<pre class="brush: jscript; title: ; notranslate">
function cargarContenido() {
    jQuery('#contenedor').load(pagina_a_cargar,'',mostrarNuevoContenido)
}
</pre>
<p>Dentro de esta función <strong>hacemos uso del método &#8220;load&#8221;</strong>, el cual se encargará de obtener el contenido de la página que especificamos en el enlace sobre el cual dimos clic. Después de cargarlo hace llamada a una nueva función que lleva por nombre &#8220;mostrarNuevoContenido&#8221;, y esto lo hacemos para aplicar un nuevo efecto con la función &#8220;show&#8221; de jQuery.</p>
<pre class="brush: jscript; title: ; notranslate">
function mostrarNuevoContenido() {
    jQuery('#contenedor').show('normal');
}
</pre>
<p>Finalmente tenemos que <strong>agregar un &#8220;return false&#8221; al final de nuestro evento de clic</strong> para que al momento de seleccionar un enlace el navegador no trate de abrirlo en una nueva ventana. De esta manera lucirá nuestro código final:</p>
<pre class="brush: jscript; title: ; notranslate">
jQuery().ready(function() {
    jQuery('#menu li a').click(function(){
        var pagina_a_cargar = jQuery(this).attr('href')+' #contenedor';
        jQuery('#contenedor').hide('fast', cargarContenido);   

        /* Funciones */
        function cargarContenido() {
            jQuery('#contenedor').load(pagina_a_cargar,'',mostrarNuevoContenido)
        }

        function mostrarNuevoContenido() {
            jQuery('#contenedor').show('normal');
        } 

        return false;
    });
});
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.lawebera.es/manual-de-jquery/animar-carga-contenidolayout-jquery.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>¿Qué puede salir mal en tu página web?</title>
		<link>http://www.lawebera.es/promocionar/errores-pagina-web.php</link>
		<comments>http://www.lawebera.es/promocionar/errores-pagina-web.php#comments</comments>
		<pubDate>Fri, 20 Apr 2012 06:02:21 +0000</pubDate>
		<dc:creator>Verónica Milán</dc:creator>
				<category><![CDATA[Manual Promoción Web]]></category>

		<guid isPermaLink="false">http://www.lawebera.es/?p=4667</guid>
		<description><![CDATA[Explicamos algunos errores comunes que suelen cometerse al planificar y diseñar una página web para intentar evitarlos en nuestros proyectos.]]></description>
			<content:encoded><![CDATA[<p>¿Un  negocio sin página web hoy en día? ¡Inconcebible! Tanto grandes  como pequeñas empresas necesitan estar presentes en la red pues si  no lo están, es como si no existieran (especialmente en un momento  en el que la tecnología juega un papel cada día más importante en  nuestras vidas).</p>
<p>La manera más común e inmediata de tener presencia  en la red es mediante una página web que resuma toda la información  que los consumidores pueden necesitar sobre nuestro negocio. Las  empresas lo saben y no se lo piensan dos veces a la hora de contratar  a especialistas en <a href="http://www.twago.es/expert/Diseño-Web/Diseño-Web" title="diseño web">diseño web</a> para que les creen una página web a medida. </p>
<p> ¿Parece fácil, verdad? Pues  no lo es. A la hora de escoger a un diseñador freelance o agencia  especialista hay que tener mucho cuidado y asegurarnos de que la  persona que vaya a encargarse de nuestro diseño entienda lo que está  haciendo. </p>
<p>De nada nos servirá gastarnos todo el presupuesto en tener  una página web bonita si luego, a la hora de la verdad, no se cuidan  los detalles que de verdad importan de cara al consumidor y de cara  al posicionamiento de nuestra web en los motores de búsqueda (SEO).   Una página web mal diseñada, que no se entienda o que no funcione  correctamente nos va a hacer tirar dinero, perder consumidores y  seguramente dañe nuestra reputación e imagen corporativa. </p>
<p>Para  evitar que esto suceda, debemos tener en cuenta algunos factores  vitales que deben considerarse a la hora de <a href="http://www.lawebera.es/" title="crear una web">crear una página web</a>.  Para ello, a continuación vamos a ver algunos de los problemas que  podemos llegar a tener si nuestra página no está bien diseñada  desde un principio. </p>
<h2>Diseño antes que funcionalidad</h2>
<p>¡Error!  Una página web puede ser muy atractiva a la vista y tener unos  colores y elementos muy bien elegidos. Sin embargo si la navegación  es confusa o complicada no va a servir de mucho pues sólo vamos a  conseguir frustrar al consumidor.</p>
<p>Por supuesto una página web puede  ser atractiva y funcional a la vez, pero siempre debe primar la  funcionalidad. Si hay que sacrificar algo, será preferible que el  diseño sea un poco menos sofisticado pero que la página sea clara y  directa, al fin y al cabo la finalidad es la de informar al  consumidor.</p>
<h2>Web mal estructurada y de difícil navegación</h2>
<p> Es necesario tener muy clara desde el  principio la <a href="http://www.lawebera.es/de0/organizar-pagina-web.php" title="estructura de una web">estructura</a> que queremos que nuestra página web siga. El  mapa del sitio debería planearse de antemano acorde a la información  que queremos comunicar y a nuestro <a href="http://www.lawebera.es/de0/audiencia.php" title="público objetivo">público objetivo</a>, para evitar  sorpresas desagradables. </p>
<p>Los usuarios tienen que encontrar la  información de manera inmediata y sin necesidad de tener que  investigar o pasar horas buscando por nuestra web. Por lo tanto el  estilo, el orden y las categorías deberían ser clarísimos desde un  buen principio porque cambiar toda la estructura del sitio web al  final, cuando ya está diseñado, no es tarea fácil ni agradable. </p>
<h2>Información  de contacto</h2>
<p> Parece increíble, pero sorprende ver el  número de páginas web corporativas que no disponen de datos de  contacto o que si lo hacen los esconden en categorías extrañas que  nada tienen que ver y que son casi imposibles de encontrar por el  consumidor.  </p>
<p>Como ya comentaba antes, una página web es al fin y al  cabo una herramienta para comunicarte con el consumidor y adquirir  consumidores nuevos, por lo tanto los datos de contacto deberían ser  fáciles de encontrar. Hay que ofrecerle al consumidor la posibilidad  de contactarnos y por tanto como mínimo la dirección de e-mail y un  teléfono de contacto deberían ser <a href="http://www.lawebera.es/de0/accesibilidad2.php" title="hacer un sitio web accesible">fácilmente accesibles</a>. </p>
<h2> Problemas de carga en la página </h2>
<p>No  hay nada que desespere más a un usuario que una página web que  tarda en cargarse, especialmente hoy en día que las conexiones a  internet son por norma general buenas. Esto puede deberse a una mala  <a href="http://www.twago.es/expert/Programador-PHP/Programador-PHP" title="programacion web">programación</a> del sitio cuando se diseñó la página o puede  tratarse de un problema de la empresa de <em>hosting</em>.  El primero de los casos es fácilmente controlable, el segundo está  fuera de nuestro alcance, pero ayudará que la compañía de <em>hosting</em> disponga de un buen servicio técnico que pueda ayudarnos a  solucionar  posibles problemas. </p>
<h2>Errores  e incompatibilidades</h2>
<p>Antes  de publicar una página web tienen que realizarse tests de prueba  para asegurar su correcto funcionamiento. Si esto no se lleva a cabo,  podemos encontrarnos con vergonzosos <a href="http://www.lawebera.es/promocionar/paginas-error.php" title="optimizar paginas de error para no perder visitas">mensajes de error</a>, errores de  carga, incompatibilidades con los diferentes exploradores o  resoluciones de pantalla y otros muchos problemas de usabilidad. Esto  molesta al consumidor y nos da muy mala imagen. </p>
<h2>Elementos  automáticos, abuso de Flash y publicidad indeseada</h2>
<p>Disponer  de publicidad en la página web puede ser una manera (aunque muy  cuestionable en páginas corporativas) de obtener ingresos extra o  cerrar colaboraciones con colaboradores. Sin embargo conviene que  esta publicidad no sea intrusiva (típico anuncio pop-up que te  bloquea la pantalla hasta que consigues encontrar la pequeñísima  cruz para cerrarlo) pues molesta a la navegación. </p>
<p>También  molesta bastante al consumidor el disponer de un <a href="http://www.lawebera.es/cursos" title="cursos en video">video</a>, canción o  elemento que se ponga en marcha automáticamente al entrar en la web.  Si tenemos un video que queremos que el consumidor  vea no hay  problema en ponerlo bien visible en la página web, pero nunca  debería empezar de manera automática. Es el usuario el que debería  controlar como y cuando lo reproduce. </p>
<p>Algo  similar ocurre con el uso de intros en <a href="http://www.lawebera.es/manual-flash" title="manual de flash">flash</a>. Hubo una época de  auténtica fiebre por incluir este tipo de introducciones en las  páginas web corporativas. El consumidor quiere acceso directo a la  información y por norma general este tipo de videos son vistos como  una molestia o una pérdida de tiempo.  Si de todas maneras  insistimos en ponerlo, debemos asegurarnos de que la opción de  &ldquo;Saltar introducción&rdquo; (o <em>Skip  intro</em>) esté  bien visible. </p>
<p>Otro factor a tener en cuenta es que los móviles no  reproducen contenido flash y por lo tanto esto  va a impedir que  nuestra web pueda consultarse correctamente desde un dispositivo  móvil, algo que es cada día más importante y común. </p>
<h2>Imposibilidad de editarla/actualizarla</h2>
<p>Si  en tu empresa no dispones de ningún empleado o departamento  capacitado para crear tu página web, es una práctica muy común la  de subcontratar a una agencia que se encargue del tema. </p>
<p>Sin embargo  siempre deberíamos asegurarnos de disponer de los derechos de  administrador de la página web para poder actualizar información y  mantenerla al día cuando sea necesario. Si esta opción no está  disponible, debemos asegurarnos de que exista una comunicación  continua con la agencia que se ha encargado de diseñarla para que  puedan realizarnos las <a href="http://www.lawebera.es/de0/actualizar-pagina-web.php" title="actualizar la pagina web">modificaciones</a> de manera rápida. </p>
<h2>Fallos  en la seguridad </h2>
<p>Es  necesario alojar la web en un servidor seguro y proteger las bases de  datos, sistemas de pago o cualquier elemento que recoja datos del  consumidor contra posibles ataques de piratas informáticos. Un  problema de  seguridad o de privacidad de datos supone la pérdida de  confianza del consumidor y una mala imagen y mala reputación de  nuestra empresa. </p>
<h2>Falta de tráfico de visitas</h2>
<p>Es  probable que tu página web no reciba un flujo de visitas suficiente.  Si esto sucede, probablemente sea porque no existe ninguna campaña  de marketing o ninguna estrategia de apoyo, algo que es bastante  común en las pequeñas empresas que no disponen de un departamento  específico para gestionar estos temas.  </p>
<p>No obstante, si vamos a  tener presencia online y queremos que reporte beneficios necesitamos  diseñar una campaña efectiva y legal de SEO o posicionamiento en  los motores de búsqueda. Esto ayudará a situar nuestra web en las  primeras posiciones en los diferentes buscadores y aumentará nuestro  tráfico y visibilidad. </p>
<h2>Falta de integración con el resto del negocio</h2>
<p>Tu página web tiene que estar totalmente integrada en tu plan de  negocio y de marketing. Hay que incluirla en posibles estrategias y  tenerla en cuenta como otro elemento más de comunicación con el  cliente. Además si también tenemos presencia en redes sociales o  asociaciones debería quedar todo unificado e integrado debidamente  en nuestra página web. Es importante que la persona que nos diseñe  la página web entienda de que va el negocio. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lawebera.es/promocionar/errores-pagina-web.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Razones por las que debemos relacionarnos con otros diseñadores freelance</title>
		<link>http://www.lawebera.es/diseno-web-freelance/porque-relacionarnos-otros-disenadores-freelance.php</link>
		<comments>http://www.lawebera.es/diseno-web-freelance/porque-relacionarnos-otros-disenadores-freelance.php#comments</comments>
		<pubDate>Thu, 19 Apr 2012 06:02:31 +0000</pubDate>
		<dc:creator>Daniel Ernesto Navarro Herrera</dc:creator>
				<category><![CDATA[Diseño Web Freelance]]></category>

		<guid isPermaLink="false">http://www.lawebera.es/?p=4661</guid>
		<description><![CDATA[Exponemos los beneficios de establecer relaciones interpersonales con compañeros de profesión que también se desempeñan como diseñadores freelance.]]></description>
			<content:encoded><![CDATA[<p>En varias ocasiones a lo largo de este manual, hemos insistido en la necesidad de establecer relaciones con otras personas de distintos campos laborales y círculos sociales con la finalidad de crear opciones de trabajo y aumentar el rango de <a href="http://www.lawebera.es/diseno-web-freelance/como-conseguir-clientes-disenador-web.php" title="¿Cómo conseguir clientes como diseñador web?">clientes potenciales</a>. El buen trato hacia las personas nos abrirá muchas más puertas de las que pensamos.</p>
<p>Esta conducta debe de frecuentarse y llevarse a cabo lo más posible, pero la duda y el cuestionamiento se puede producir si nos encontramos con personas que realizan las mismas actividades que nosotros. </p>
<p>En estos casos, existen muchos <a href="http://www.veronicamilan.es/" title="Diseño web freelance">diseñadores freelancers</a> quienes prefieren mantenerse alejados de la competencia, y no consideran a otros desarrolladores autónomos para establecer relaciones, ni siquiera para conversar y mucho menos para ser amigos.</p>
<p>La decisión se dará al definir si debemos considerar a estas personas únicamente como competencia o quizás debamos abrir la posibilidad de establecer una relación que puede rendir frutos profesionales.</p>
<p>Esto no es fácil en principio, puesto que la mayor parte del tiempo vemos a la competencia como rivales y personas que únicamente quieren quitarnos nuestro trabajo, por ello en este artículo trataremos de hacerte ver un lado que comúnmente no se expone, razones por las que relacionarnos con similares nos ayudarán a ser mejores.</p>
<h2>Ve un recurso en la competencia</h2>
<p>El simple hecho de tener una competencia nos hace mejores, sin necesidad de establecer una relación como tal, la competencia ya esta haciendo algo por nosotros. </p>
<p>Al momento de conocer que existe alguien más rondando el mismo mercado que teníamos &#8220;asegurado&#8221; en el pasado, hace que busquemos mejorar nuestros servicios y ofrecer mejores productos para sobresalir de los demás, esto hará que nos preparemos mejor, que tengamos un <a href="http://www.lawebera.es/diseno-web-freelance/portafolio-disenador-web-freelance.php" title="El portafolio del diseñador web freelance">portafolio o curriculum más amplio</a> y esto nos ayudará a crear una mejor marca, algo que por supuesto también beneficia al cliente.</p>
<p>Dejando atrás un poco la etiqueta de competencia, los otro diseñadores freelance pueden convertirse en grandes compañeros, incluso en fundadores de un gremio importante dentro de la zona donde normalmente desarrollas tus proyectos. </p>
<p>Crear una comunidad de personas que se dedican a lo mismo, ha ayudado a crear profesiones más fuertes, mejores pagadas y más apreciadas.</p>
<p>Los otros <a href="http://www.lawebera.es/diseno-web-freelance" title="diseñadores freleance">diseñadores freelance</a> dentro de tu comunidad puedes representar grandes recursos, podemos aprender de personas grandiosas que quizás han venido diseñando o desarrollando para web desde mucho tiempo antes que nosotros, o de jóvenes que van saliendo de la escuela y tienen una visión más fresca de lo que es el mercado. </p>
<p>Establecer estas relaciones nos hará más sencillo el aprender como crecer dentro del negocio.</p>
<h2>La transición es difícil</h2>
<p>Por supuesto que el hecho de saber que alguien más dentro de tu comunidad esta buscando los mismos clientes que tú puede resultar bastante incomodo, al grado de que no podamos estar tranquilos pensando que quizás estamos dejando ir clientes porque la otra persona está trabajando más que nosotros.</p>
<p>Pero hay que ir un paso más allá, si te sientes personalmente cómodo estableciendo una relación con alguien de tu misma profesión y rubro de trabajo, no tienes porque ponerte barreras.</p>
<p>Lograr todo esto requiere de práctica y por supuesto de confianza, confiar en lo que hacemos y lo que somos, ya que sin ello siempre veremos al colega como una competencia. </p>
<p>Si tienes bien <a href="http://www.lawebera.es/comunidad/articulos/marketing/minimalismo-seo-marketing.php" title="Minimalismo, el SEO y el marketing online">trazados tus objetivos</a>, tus planes y siempre mantienes una idea clara de cual es tu base de clientes no tendrás algún problema, esto no es el viejo oeste, dos o más si caben en el mismo pueblo.</p>
<h2>La unión hace la fuerza</h2>
<p><strong>Muchas veces el hecho de contar con una comunidad detrás de ti te ayudará a salir de momentos difíciles</strong>, el colaborar con otros te puede dar proyectos no tan demandantes que te ayudarán a salir del mal paso. </p>
<p>De igual manera la colaboración se puede producir por el simple hecho de ayudar a otros, cuidando su espalda para que ellos cuiden la tuya cuando sea necesario.</p>
<p>La misma colaboración puede llevar tu negocio a otros niveles, se puede optar por formar una alianza o asociación con otros diseñadores freelance, llegando inclusive a establecer una compañía de diseño web más sólida y mejor estructurada.</p>
<p>El hecho de que algún proyecto no sea lo suficientemente bueno para ti, no significa que no sea de utilidad para otros, puedes compartir los datos de compañeros con las compañías o personas que te ofrezcan proyectos que realmente no cubren con lo que estás buscando. De esa manera puedes apoyar a otros de tu comunidad y más adelante ellos mismos pueden apoyarte a ti.</p>
<p>Por ejemplo, si tu eres una persona a la cual le gusta mucho diseñar pero realmente no eres un apasionado del diseño, puedes pasar algunos de tus proyectos que demanden muchos conocimientos en edición o <a href="http://www.lawebera.es/comunidad/articulos/diseno-paginas-web/etapas-del-diseno-web.php" title="Etapas del diseño web">diseño gráfico</a> a uno de tus compañeros que sea bueno en esto, así cuando él tenga algún proyecto de desarrollo puede recurrir a ti.</p>
<h2>Conclusión</h2>
<p>El resultado de formar o no una sociedad seguirá siendo dependiente de distintos factores, con estos puntos que expusimos en esta ocasión no queremos decir que se garantiza un éxito rotundo, estamos hablando sólo en base a la experiencia y a lo que la historia nos ha enseñado con otros grupos de trabajo.</p>
<p>Si tu te consideras una persona poco sociable o que realmente no esta dispuesta a colaborar de manera conjunta, estás en todo tu derecho de mantenerte en solitario, al final del día es una de los <a href="http://www.lawebera.es/diseno-web-freelance/pros-contras-ser-disenador-freelance.php" title="Pros y contras de ser diseñador web freelance">beneficios que nos proporciona el trabajar de manera independiente</a>. Toma lo que mejor se adapte a tu situación.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lawebera.es/diseno-web-freelance/porque-relacionarnos-otros-disenadores-freelance.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hacer un tooltip con jQuery y CSS3</title>
		<link>http://www.lawebera.es/como-hacer/ejemplos-jquery/tooltip-jquery-css3.php</link>
		<comments>http://www.lawebera.es/como-hacer/ejemplos-jquery/tooltip-jquery-css3.php#comments</comments>
		<pubDate>Tue, 17 Apr 2012 18:43:09 +0000</pubDate>
		<dc:creator>Daniel Ernesto Navarro Herrera</dc:creator>
				<category><![CDATA[Ejemplos jQuery]]></category>
		<category><![CDATA[Manual de jQuery]]></category>

		<guid isPermaLink="false">http://www.lawebera.es/?p=4652</guid>
		<description><![CDATA[Explicamos como utilizar jQuery en combinación con CSS3 para crear un pequeño tooltip que despliegue mensajes al colocar el mouse sobre un elemento.]]></description>
			<content:encoded><![CDATA[<p>En esta ocasión haremos uso de un recurso bastante sencillo y atractivo visualmente el cual nos ayudará a <a href="http://www.lawebera.es/posicionamiento" title="Posicionamiento">mejorar el SEO</a> de nuestro sitio y la experiencia del usuario al navegar. Para aquellos que no estén muy familiarizados con el tema, <strong>un tooltip es una herramienta de ayuda visual muy utilizada en sitios con el fin de mostrar una descripción</strong> o información relevante de cierto elemento que se despliega sobre una página.</p>
<p>Esta funcionalidad te puede resultar familiar, puede que en más de una ocasión te hayas percatado que al colocar el mouse sobre un elemento, como una imagen, aparezca un mensaje dentro de una pequeña caja de color. <strong>Esta es la funcionalidad clásica de un tooltip por defecto, el cual es agregado por el navegador, gracias a que nosotros especificamos un atributo &#8220;alt&#8221; o &#8220;title&#8221; a nuestro elemento</strong>.</p>
<p>En esta ocasión también haremos uso de dichos atributos, pero en lugar de utilizar el tooltip que nos ofrece el navegador haremos uno personalizado, que lucirá acorde al diseño del sitio y hará que luzca más profesional.</p>
<h2>Tooltip personalizado</h2>
<p>El uso de tooltips personalizados no es nuevo, se ha venido aplicando desde hace tiempo en el diseño web y en el pasado se pudieron apreciar sobretodo en desarrollos que fueron elaborados con <a href="http://www.lawebera.es/manual-flash/crear-sitios-web-en-flash.php" title="Creación de sitios web en Flash">Flash</a>. En la actualidad <strong>su elaboración ya no involucra el uso de Flash, puesto que resulta mucho más sencilla gracias al uso de jQuery para el manejo de animaciones y transiciones</strong>.</p>
<p>Aunque <a href="http://www.lawebera.es/manual-de-jquery" title="Manual de jQuery">jQuery simplifica la creación</a>, aún necesitamos realizar una serie de tareas para poder personalizar nuestro tooltip. En esta ocasión nos apoyaremos con CSS3 para no utilizar imágenes al dar forma a nuestro tooltip, también haremos uso del atributo &#8220;title&#8221; en cada elemento donde queramos desplegarlo, agregando al mismo tiempo un alto valor de SEO a los elementos ya que indicaremos una descripción de lo que estamos desplegando. </p>
<p>De esta manera nuestro tooltip personalizado tendrá una muy buena presentación, sin necesidad de cargar imágenes que demanden peticiones extra al servidor, mostrando información relevante e importante para el usuario, mejorando su experiencia de navegación, con un código limpio y de fácil SEO para los buscadores.</p>
<div class="ejemplos clearfix">
   <a class="sprites descargar" href="/descargas/jquery/tooltip_jquery_css3.rar">Descargar</a> <a class="sprites ejemplo" href="/ejemplos/jquery/tooltip_jquery_css3.html">Ver ejemplo</a>
</div>
<h2>Estructura HTML para el tooltip</h2>
<p>La base del proyecto estará sustentada por una estructura de lenguaje HTML, empezaremos por definir los elementos que mostrarán un tooltip, en esta ocasión <strong>nos decidimos a utilizar elementos de enlace por lo que utilizaremos la etiqueta &#8220;a&#8221; para definirlos</strong>. Debemos aclarar que cualquier elemento que acepte el atributo title puede ser utilizado, pero en esta ocasión solo quisimos utilizar enlaces, más adelante declararemos los elementos pueden utilizar esta herramienta.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;a href=&quot;#&quot; title=&quot;Este enlace actualmente no lleva a ningún lado pero sirve para mostrarte el uso del tooltip&quot; class=&quot;tooltip_elemento center&quot;&gt;Tooltip en un enlace&lt;/a&gt;
</pre>
<p>A nuestros elementos les agregamos una clase que lleva por nombre &#8220;tooltip&#8221; esta será definida más adelante en nuestro <a href="http://www.lawebera.es/como-hacer/ejemplos-css" title="ejemplos css">código CSS</a>, y se utiliza para darle un estilo con el que contará cada vez que la caja de descripción se abra.</p>
<p>Después de definir los elementos que abrirán el tooltip debemos establecer la estructura del tooltip en sí, para ello haremos uso de un elemento de tipo &#8220;div&#8221; el cual contendrá un texto por defecto.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;tooltip&quot;&gt;Texto del tooltip&lt;/div&gt;
</pre>
<p><img src="http://i1238.photobucket.com/albums/ff491/dnavarro1/tooltipo_inicio.jpg" alt="Enlace sin estilo" /></p>
<h2>Estilo del tooltip</h2>
<p>Lo primero que debemos definir es la posición de los elementos que contendrán el tooltip, la cual debe ser relativa para que el tooltip pueda ser desplegando y para ello le daremos un valor de &#8220;relative&#8221; a la propiedad &#8220;position&#8221;:</p>
<pre class="brush: css; title: ; notranslate">
.tooltip_elemento {
    position: relative;
}
</pre>
<p>Después le daremos estilo a la caja que define nuestra descripción, es decir el div que lleva la clase &#8220;tooltip&#8221; en sus atributos. <strong>El tooltip debe permanecer oculto por defecto por lo que estableceremos un valor &#8220;none&#8221; a la propiedad &#8220;display&#8221;</strong>, le daremos una posición absoluta para que sea relativa al elemento que lo despliega, estableceremos las dimensiones de la caja dependiendo del tamaño que queramos y finalmente definimos el color de fondo y algunos aspectos de la fuente para estilizar el elemento.</p>
<pre class="brush: css; title: ; notranslate">
.tooltip {
    display: none;
    position: absolute;
    width: 200px;
    padding: 10px;
    margin: 0 0 12px 0;
    z-index: 100;
    bottom: 100%;
    background: #FDD017;
    color: #fff;
    text-align: center;
    font-weight: bold;
    font-size: 11px;
}
</pre>
<p>Finalmente definimos el estilo de la flecha que lucirá en la parte inferior del tooltip, para ello haremos uso de los <a href="http://www.lawebera.es/como-hacer/ejemplos-css/pseudo-elementos-css-before-after.php" title="Pseudo elementos CSS “:before” y “:after”">pseudo elementos &#8220;after&#8221; y &#8220;before&#8221;</a>. El estilo que le demos a ambos definirá cada mitad de la forma de la flecha, por lo que al juntarlos tendremos la flecha completa</p>
<pre class="brush: css; title: ; notranslate">
.tooltip:after {
    content: &quot;&quot;;
    position: absolute;
    bottom: -14px;
    z-index: 100;
    border: 0 solid #FDD017;
    border-bottom: 14px solid transparent;
    border-left-width: 10px;
    width: 50%;
    left: 50%;
}

.tooltip:before {
    content: &quot;&quot;;
    position: absolute;
    border: 0 solid #FDD017;
    bottom: -14px;
    z-index: 100;
    border-right-width: 10px;
    border-bottom: 14px solid transparent;
    width: 50%;
    right: 50%;
}
</pre>
<h2>Uso de jQuery para desplegar el tooltip</h2>
<p>El último paso a realizar es establecer la funcionalidad de despliegue de nuestro tooltip, para ello haremos <a href="http://www.lawebera.es/manual-de-jquery/consejos-sencillos-usar-jquery.php" title="Consejos sencillo para usar jQuery">uso de jQuery</a> y definiremos un par de funciones. <strong>Utilizaremos los eventos &#8220;mouseenter&#8221; y &#8220;mouseleave&#8221; para disparar nuestras funciones</strong>, dichos eventos se producen cuando ponemos el mouse sobre un elemento y cuando lo retiramos.</p>
<p>Al momento de poner el mouse sobre el elemento (mouseenter) debemos obtener la posición del mouse para calcular donde colocar el tooltip, después <a href="http://www.lawebera.es/manual-de-jquery/obtener-valores-atributos-jquery.php" title="Obtención de valores de los atributos con jQuery">obtenemos el texto del atributo &#8220;title&#8221;</a> para poder desplegarlo, lo añadimos al div que define nuestro tooltip y finalmente mediante la función &#8220;fadeIn&#8221; mostramos la descripción.</p>
<pre class="brush: jscript; title: ; notranslate">
jQuery(&quot;a&quot;).mouseenter(function (e) {
    var posMouse = e.pageX - this.offsetLeft;
    var textoTooltip = jQuery(this).attr(&quot;title&quot;); 

    if (textoTooltip.length &gt; 0) {
        jQuery(this).append('&lt;div class=&quot;tooltip&quot;&gt;' + textoTooltip + '&lt;/div&gt;');
        jQuery(&quot;a &gt; div.tooltip&quot;).css(&quot;left&quot;, &quot;&quot; + posMouse - 103 + &quot;px&quot;);
        jQuery(&quot;a &gt; div.tooltip&quot;).fadeIn(300);
    }
});
</pre>
<p>Como se puede apreciar en nuestro selector de jQuery únicamente estamos especificando los elementos de tipo enlace &#8220;a&#8221;, si quisiéramos agregar más elementos o especificar ciertos tipos de enlaces, tendríamos que modificar ese selector.</p>
<p>Al momento de retirar el mouse del elemento (mouseleave) llamaremos a la función &#8220;fadeOut&#8221; que agrega una transición para desaparecer nuestro tooltip, finalmente removemos el elemento del marcado con la función &#8220;remove&#8221; después de introducirlo en una cola mediante al función &#8220;queue&#8221; para que el remover se aplique hasta que el efecto haya terminado.</p>
<pre class="brush: jscript; title: ; notranslate">
jQuery(&quot;a&quot;).mouseleave(function () {
    jQuery(&quot;a &gt; div.tooltip&quot;).fadeOut(300).delay(300).queue(function () {
        jQuery(this).remove();
        jQuery(this).dequeue();
    });
});
</pre>
<p><img src="http://i1238.photobucket.com/albums/ff491/dnavarro1/tooltipo_final.jpg" alt="Resultado final" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.lawebera.es/como-hacer/ejemplos-jquery/tooltip-jquery-css3.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maquetación del cuerpo (2)</title>
		<link>http://www.lawebera.es/cursos/curso-maquetacion-web/08-maquetar-cuerpo-web-2.php</link>
		<comments>http://www.lawebera.es/cursos/curso-maquetacion-web/08-maquetar-cuerpo-web-2.php#comments</comments>
		<pubDate>Sat, 14 Apr 2012 12:02:57 +0000</pubDate>
		<dc:creator>Verónica Milán</dc:creator>
				<category><![CDATA[Curso Maquetación Web]]></category>

		<guid isPermaLink="false">http://www.lawebera.es/?p=4630</guid>
		<description><![CDATA[Terminamos de maquetar el cuerpo de la página web, la parte final de este ejemplo práctico de maquetación web. ]]></description>
			<content:encoded><![CDATA[			<a href="http://videos-lawebera.s3-eu-west-1.amazonaws.com/maquetacion/curso_maquetacion_web_08.mp4" style="display:block;width:520px;height:330px"  id="player"></a> 
		
	<script>
		flowplayer("player", 'http://www.lawebera.es/wp-content/plugins/s3-video/misc/flowplayer-3.2.7.swf', {
		    clip:  {
		        autoPlay: false,
		        autoBuffering: true,
		        bufferLength: 5,
		        onStart: function() {
	    			jQuery.getJSON("http://www.lawebera.es/wp-content/plugins/s3-video/includes/video_tracking.php?video=http://videos-lawebera.s3-eu-west-1.amazonaws.com/maquetacion/curso_maquetacion_web_08.mp4&action=start&time="+$f().getTime()+"&jsoncallback=?");
				},
      			onResume: function(){
	    			jQuery.getJSON("http://www.lawebera.es/wp-content/plugins/s3-video/includes/video_tracking.php?video=http://videos-lawebera.s3-eu-west-1.amazonaws.com/maquetacion/curso_maquetacion_web_08.mp4&action=resume&time="+$f().getTime()+"&jsoncallback=?");  				
      			},					
			    onPause: function () {
	    			jQuery.getJSON("http://www.lawebera.es/wp-content/plugins/s3-video/includes/video_tracking.php?video=http://videos-lawebera.s3-eu-west-1.amazonaws.com/maquetacion/curso_maquetacion_web_08.mp4&action=paused&time="+$f().getTime()+"&jsoncallback=?");			    	
			    },
			    onFinish: function(){
	    			jQuery.getJSON("http://www.lawebera.es/wp-content/plugins/s3-video/includes/video_tracking.php?video=http://videos-lawebera.s3-eu-west-1.amazonaws.com/maquetacion/curso_maquetacion_web_08.mp4&action=finish&time="+$f().getTime()+"&jsoncallback=?");		    	
			    }					
		    }			
		});
	</script>
	


]]></content:encoded>
			<wfw:commentRss>http://www.lawebera.es/cursos/curso-maquetacion-web/08-maquetar-cuerpo-web-2.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching using disk: basic

Served from: www.lawebera.es @ 2012-05-17 04:26:11 -->
