<?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>JHMorales.es&#62;blog &#187; Javascript</title>
	<atom:link href="http://www.jhmorales.es/blog/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jhmorales.es/blog</link>
	<description>Cuestiones sobre diseño web</description>
	<lastBuildDate>Mon, 21 Sep 2009 14:28:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Comprimiendo .css y .js y almacenando en caché</title>
		<link>http://www.jhmorales.es/blog/diseno-web/comprimiendo-y-almacenando-en-cache/</link>
		<comments>http://www.jhmorales.es/blog/diseno-web/comprimiendo-y-almacenando-en-cache/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 17:05:16 +0000</pubDate>
		<dc:creator>JHMorales</dc:creator>
				<category><![CDATA[Diseño-web]]></category>
		<category><![CDATA[Usabilidad]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Maquetación]]></category>

		<guid isPermaLink="false">http://www.jhmorales.es/blog/?p=181</guid>
		<description><![CDATA[
En diseño web es de gran importancia el tiempo de descarga que necesita la web que diseñemos para mostrarse completa y operativa. Algunos disponemos de banda ancha y la diferencia entre que una web cargue en 4 segundos o en 1 no es muy apreciable. Pero en conexiones lentas, que no sean de banda ancha [...]]]></description>
			<content:encoded><![CDATA[<div class="col">
<p>En diseño web es de gran importancia el <strong>tiempo de descarga</strong> que necesita la web que diseñemos para mostrarse completa y operativa. Algunos disponemos de <strong>banda ancha</strong> y la diferencia entre que una web cargue en 4 segundos o en 1 no es muy apreciable. Pero en conexiones lentas, que no sean de banda ancha o que tengan un <strong>tiempo de respuesta</strong> muy lento por alguna razón, este tiempo se puede multiplicar por 10, 20 ó hasta por 50.</p>
<p>La &#8220;inmediatez&#8221; que implica el uso de internet en el sentido de que <em>lo que busco lo quiero ya</em>, en parte porque soy yo quien lo estoy buscando activamente -no como en el caso de la televisión que estoy esperando a recibir lo que sea que vaya a salir-, conlleva que si lo que pido <strong>tarda demasiado</strong> tengo mucho de donde escoger a pocos clicks. Por esto es necesario implementar sistemas que reduzcan ese tiempo de espera, en el caso del diseño web <strong>reutilizando recursos</strong> que son comunes en nuestro sitio en sus diferenes páginas. Estos se almacenan en el <strong>caché del navegador o del servidor</strong> y podemos mejorar este almacenamiento de manera sencilla, así esos archivos solo se descargan en la primera visita.</p>
<p>Tenemos por ejemplo un sitio con sus diferentes páginas web y sus hojas de estilo. Lo mas común es que podamos usar <strong>scripts php</strong> en nuestras páginas aunque dentro de estas no haya que hacer ningún tipo de consulta a bases de datos, ni cálculos, ni gráficas, etc. Estos scripts se ejecutan en el <strong>servidor</strong> y, para el caso que nos interesa, informarán al navegador del cliente sobre el estado de los recursos que componen la página.</p>
<p>Si tenemos una <strong>hoja de estilos .css</strong> que no cambiará en mucho tiempo podemos <strong>minimizarla, comprimirla y almacenarla</strong> en caché, esto mismo se puede hacer con los archivos de <strong>javascript</strong> que usemos. Así en futuras visitas o en las diferentes páginas que componen nuestro sitio, y usan la misma .css o .js, no será necesario descargar desde el servidor estos archivos cada vez.</p>
<p>Para minimizar la css hay varios servicios gratuitos, entre ellos <a href="http://www.lotterypost.com/css-compress.aspx"><strong>Css compressor, de Lottery post</strong></a>. Tan sencillo como copiar el código de la css, pegar en Input, picar en Compress y seleccionar todo, copiar y pegar en un documento nuevo de nuestro editor de css. Damos el mismo nombre distinguiéndolo con min, por ejemplo estilo<strong>.min.css</strong> y guardamos.</p>
<p>Para minimizar los archivos de javascript seguimos los mismos pasos pero usamos el servicio de <a href="http://fmarcia.info/jsmin/test.html"><strong>JS Minifier</strong></a>. En este caso deberemos borrar el código de ejemplo que viene en Code que es donde pegamos nuestro código js. Es recomendable dejar el nivel en &#8220;conservative&#8221; para evitar errores. Guardamos igual, por ejemplo efectos<strong>.min.js</strong>.</p>
<p>Para comprimir y almacenar en caché lo hacemos con un solo script:</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span> ?php </div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">ob_start</span> <span class="br0">&#40;</span><span class="st0">&quot;ob_gzhandler&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="st0">&quot;Content-type: text/javascript; charset: UTF-8&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="st0">&quot;Cache-Control: public, max-age=31536000&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$offset</span> <span class="sy0">=</span> <span class="nu0">60</span> <span class="sy0">*</span> <span class="nu0">60</span> <span class="sy0">*</span> <span class="nu0">24</span> <span class="sy0">*</span> <span class="nu0">30</span> <span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$ExpStr</span> <span class="sy0">=</span> <span class="st0">&quot;Expires: &quot;</span> <span class="sy0">.</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">gmdate</span><span class="br0">&#40;</span><span class="st0">&quot;D, d M Y H:i:s&quot;</span><span class="sy0">,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">time</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="sy0">+</span> <span class="re1">$offset</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st0">&quot; GMT&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">header</span><span class="br0">&#40;</span><span class="re1">$ExpStr</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>Es imprescindible que este script vaya al comienzo del archivo antes de cualquier otra cosa. El <strong>ob_start (&#8221;ob_gzhandler&#8221;);</strong> es el que se encarga de comprimir. El resto del script es el que crea la cabecera para que el archivo sea almacenado en caché, para hojas de estilo usaremos text/css. El <strong>Cache-control: public</strong> dice al navegador que será útil para cualquier página del dominio que lo solicite, <strong>max-age</strong>=31536000 establece su fecha de caducidad en un año -en segundos-. El <strong>Expires</strong> establece su próxima revisión en un mes. Ahora el archivo lo guardamos como estilo<strong>.min.css.php</strong> o efectos<strong>.min.js.php</strong> en cada caso.</p>
<p>Ahora solo hace falta llamar a nuestro archivos desde el <strong>head</strong> de la misma manera pero con los nuevos nombres. Los javascript es mejor ponerlos al final de la página, justo <em>antes del cierre de la etiqueta body</em>, así se arma la página antes de empezar a cargar el javascript, lo que da la sensación de que termina antes de descargar. Nuestras páginas ya <strong>no deberán terminar en .htm o .html</strong> sinó en <strong>.php</strong> para que el código php introducido sea ejecutado.</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.jhmorales.es/blog/diseno-web/comprimiendo-y-almacenando-en-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resolucion de pantalla y tamaño de fuente</title>
		<link>http://www.jhmorales.es/blog/diseno-web/resolucion-de-pantalla-y-tamano-de-fuente/</link>
		<comments>http://www.jhmorales.es/blog/diseno-web/resolucion-de-pantalla-y-tamano-de-fuente/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 13:40:39 +0000</pubDate>
		<dc:creator>JHMorales</dc:creator>
				<category><![CDATA[Diseño-web]]></category>
		<category><![CDATA[Ergonomía]]></category>
		<category><![CDATA[Fuentes]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.jhmorales.es/blog/?p=96</guid>
		<description><![CDATA[
En los últimos años el ancho de la resolución de la pantalla se ha ido incremantando de 800 a 1024, a 1280, a 1440, a 1600px, y de repente ahora se hacen populares los ultraportátiles o netbooks con 800. Las webs usualmente se ven igual en todas las resoluciones, ya sea por tener un diseño [...]]]></description>
			<content:encoded><![CDATA[<div class="col">
<p>En los últimos años el <strong>ancho de la resolución de la pantalla </strong>se ha ido incremantando de <em>800 </em>a <em>1024</em>, a <em>1280</em>, a <em>1440</em>, a <em>1600px</em>, y de repente ahora se hacen populares los ultraportátiles o netbooks con <em>800</em>. Las webs usualmente se ven igual en todas las resoluciones, ya sea por tener un diseño estático o líquido, mas no así el <strong>tamaño de la fuente</strong> usada que va disminuyendo proporcionalmente a medida que aumenta la resolución y terminamos dejándonos los ojos.</p>
<p>Con esto en mente es conveniente usar un método que facilite el <strong>cambio del tamaño</strong> de fuente o texto, que sea <strong>visible </strong>en pantalla y que además también <strong>reaccione igual</strong> al efecto de cambio de tamaño que causa. En algunas de mis webs he usado un código de jQuery que encontré en <a href="http://www.shopdev.co.uk/blog/text-resizing-with-jquery/">text resizing with jquery</a>, al que le hice algunos cambios para tener las características antes mencionadas. Una de las partes que hice fue la creación de un método que adapte el tamaño de fuente a la resolución de la pantalla del nuevo visitante de la web.</p>
<p>El código fontSize.js usa la librería de javascript <a href="http://jquery.com/"><strong>jQuery</strong></a>, y el plugin de cookies <a href="http://plugins.jquery.com/project/Cookie"><strong>jquery.cookie.js</strong></a>, que debemos llamarlos en el head así:</p>
<div class="dontsplit">
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">&lt;script src=&quot;jquery-1.2.6.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;jquery.cookie.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script src=&quot;fontSize.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;</div>
</li>
</ol>
</div>
</div>
<p>Luego dentro de la página debemos poner los enlaces:</p>
<div class="dontsplit">
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">&lt;div id=&quot;changeFont&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;p&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;a href=&quot;#&quot; class=&quot;decreaseFont&quot;&gt;-a&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;a href=&quot;#&quot; class=&quot;resetFont&quot;&gt;a&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;a href=&quot;#&quot; class=&quot;increaseFont&quot;&gt;a+&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/p&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;</div>
</li>
</ol>
</div>
</div>
<p>En el css les damos el estilo que mejor se adapte al diseño de nuestra web. Lo he aplicado en un principio a dos de mis páginas (www.centrecapi.es y www.laranda.es). Ha sido probado con éxito en windowsXP ff3, ie7, opera9.65, safari3.1, chrome 1 y fennec; en windowsVista ie8b2; windows98 ie6, ff2 y opera9.1; macOsX 10.46 safari2; Ubuntu 8.04 ff3 y Konqueror. Las web tienen un tamaño de fuente de 62.5% en el css y a los diferentes elementos se les asigna el tamaño de fuente en ems.</p>
<p>El código lo que hace es crear una función que esté operativa al terminar de cargar la página e inmediatamente activar un <strong>botón invisible</strong> que usará el tamaño de fuente almacenado en la cookie, o el botón de tamaño inicial para <em>nuevos visitantes</em>.</p>
<p>Primero se añade un botón invisible para activarlo en usuarios que ya han visitado la web, a este no hay necesidad de <em>darle estilo</em>. Luego se encuentra el ancho de la resolución de pantalla y se calcula el tamaño de fuente base de acuerdo a él. Luego se verifica si existe una cookie del tamaño de fuente usado en visitas anteriores, si no existe se usa el tamaño antes calculado.</p>
<p>Se crean las funciones para el botón de <strong>decremento </strong>(x0.9), el de <strong>tamaño base</strong> (el calculado), el de <strong>incremento </strong>(x1.1) y el del botón invisible para usuarios antiguos al que se le da el tamaño almacenado en la cookie. Por último se comprueba si existe la cookie para activar el botón invisible o si no para activar el de tamaño base.<br />
Le he traducido los comentarios para entenderlo mejor.</p>
</div>
<div>
<div class="geshi no javascript">
<ol>
<li class="li1">
<div class="de1">$<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> sitefunctions = <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; textresize: <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#changeFont p&quot;</span><span class="br0">&#41;</span>.<span class="me1">append</span><span class="br0">&#40;</span><span class="st0">&quot;&lt;a href=&#39;#&#39; class=&#39;font&#39;&gt;&lt;/a&gt;&quot;</span><span class="br0">&#41;</span>;<span class="co1">//creamos botón de usarios antiguos</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;.font&quot;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;visibility&quot;</span>,<span class="st0">&quot;hidden&quot;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;font-size&quot;</span>,<span class="nu0">0</span><span class="br0">&#41;</span>;<span class="co1">//lo hacemos invisible</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// mostramos los enlaces para cambio de tamaño</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#changeFont&quot;</span><span class="br0">&#41;</span>.<span class="me1">show</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> $cookie_name = <span class="st0">&quot;sitename-FontSize&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> originalFontSize = $<span class="br0">&#40;</span><span class="st0">&quot;html&quot;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;font-size&quot;</span><span class="br0">&#41;</span>;<span class="co1">//código original</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw2">var</span> screenWidth = screen.<span class="me1">availWidth</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>screenWidth<span class="sy0">&amp;</span>lt;<span class="nu0">850</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; originalFontSize = screenWidth <span class="sy0">/</span> <span class="nu0">48</span>;<span class="co1">//tamaño para pantalla pequeñas</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>screenWidth<span class="sy0">&amp;</span>lt;<span class="nu0">1100</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; originalFontSize = screenWidth <span class="sy0">/</span> <span class="nu0">60</span>;<span class="co1">//tamaño para navegadores estandar con ancho de 1024</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; originalFontSize = screenWidth <span class="sy0">/</span> <span class="nu0">72</span>;<span class="co1">//tamaño para navegadores estandar con ancho mayor de 1024</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>$.<span class="me1">browser</span>.<span class="me1">msie</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span>screenWidth<span class="sy0">&amp;</span>lt;<span class="nu0">850</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; originalFontSize = screenWidth <span class="sy0">/</span> <span class="nu0">48</span>;<span class="co1">//tamaño para ie a 1024</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; originalFontSize = screenWidth <span class="sy0">/</span> <span class="nu0">56</span>;<span class="co1">//tamaño para ie mas de 1024</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>$.<span class="me1">browser</span>.<span class="me1">safari</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; originalFontSize = screenWidth <span class="sy0">/</span> <span class="nu0">52</span>;<span class="co1">//tamaño para safari</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>$.<span class="me1">browser</span>.<span class="me1">opera</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; originalFontSize = screenWidth <span class="sy0">/</span> <span class="nu0">50</span>;<span class="co1">//tamaño para opera</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// si existe la cookie cargamos el valor guardado, si no la creamos</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>$.<span class="me1">cookie</span><span class="br0">&#40;</span>$cookie_name<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> $getSize = $.<span class="me1">cookie</span><span class="br0">&#40;</span>$cookie_name<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;html&quot;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="br0">&#123;</span>fontSize: $getSize + <span class="br0">&#40;</span>$getSize.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="st0">&quot;px&quot;</span><span class="br0">&#41;</span> <span class="sy0">!</span>= <span class="nu0">-1</span> ? <span class="st0">&quot;&quot;</span> : <span class="st0">&quot;px&quot;</span><span class="br0">&#41;</span><span class="br0">&#125;</span><span class="br0">&#41;</span>; <span class="co1">// apaño para el error de doble &quot;pxpx&quot; en IE (siempre dando la nota)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $.<span class="me1">cookie</span><span class="br0">&#40;</span>$cookie_name, originalFontSize<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// boton tamaño base</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;.resetFont&quot;</span><span class="br0">&#41;</span>.<span class="me1">bind</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;html&quot;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;font-size&quot;</span>, originalFontSize<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $.<span class="me1">cookie</span><span class="br0">&#40;</span>$cookie_name, originalFontSize<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// boton incremento</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;.increaseFont&quot;</span><span class="br0">&#41;</span>.<span class="me1">bind</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> currentFontSize = $<span class="br0">&#40;</span><span class="st0">&quot;html&quot;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;font-size&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> currentFontSizeNum = parseFloat<span class="br0">&#40;</span>currentFontSize, <span class="nu0">10</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> newFontSize = currentFontSizeNum <span class="sy0">*</span> <span class="nu0">1.1</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>newFontSize<span class="sy0">&amp;</span>lt;<span class="nu0">40</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;html&quot;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;font-size&quot;</span>, newFontSize<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $.<span class="me1">cookie</span><span class="br0">&#40;</span>$cookie_name, newFontSize<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//boton decremento</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;.decreaseFont&quot;</span><span class="br0">&#41;</span>.<span class="me1">bind</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> currentFontSize = $<span class="br0">&#40;</span><span class="st0">&quot;html&quot;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;font-size&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> currentFontSizeNum = parseFloat<span class="br0">&#40;</span>currentFontSize, <span class="nu0">10</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> newFontSize = currentFontSizeNum <span class="sy0">*</span> <span class="nu0">0.9</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>newFontSize<span class="sy0">&gt;</span><span class="nu0">12</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;html&quot;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&quot;font-size&quot;</span>, newFontSize<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $.<span class="me1">cookie</span><span class="br0">&#40;</span>$cookie_name, newFontSize<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//boton usuarios antiguos</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;.font&quot;</span><span class="br0">&#41;</span>.<span class="me1">bind</span><span class="br0">&#40;</span><span class="st0">&quot;click&quot;</span>, <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> $getSize = $.<span class="me1">cookie</span><span class="br0">&#40;</span>$cookie_name<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">var</span> prevfontSize = $getSize + <span class="br0">&#40;</span>$getSize.<span class="me1">indexOf</span><span class="br0">&#40;</span><span class="st0">&quot;px&quot;</span><span class="br0">&#41;</span> <span class="sy0">!</span>= <span class="nu0">-1</span> ? <span class="st0">&quot;&quot;</span> : <span class="st0">&quot;px&quot;</span><span class="br0">&#41;</span>;<span class="co1">// apaño para el error de doble &quot;pxpx&quot; en IE (siempre dando la nota)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;html&quot;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="br0">&#123;</span>fontSize: prevfontSize<span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $.<span class="me1">cookie</span><span class="br0">&#40;</span>$cookie_name, prevfontSize<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; $<span class="br0">&#40;</span>document<span class="br0">&#41;</span>.<span class="me1">ready</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; sitefunctions.<span class="me1">textresize</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>$.<span class="me1">cookie</span><span class="br0">&#40;</span><span class="st0">&quot;sitename-FontSize&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;.font&quot;</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<span class="co1">//usa el valor de tamaño de fuente almacenado en cookie</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;.resetFont&quot;</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<span class="co1">//usa el tamaño calculado según ancho de resolución</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
</div>
<p>En originalFontSize = screenWidth / xx estos valores van bien generalmente, pero el tamaño se puede cambiar según la web. Puede ser que haya que hacer varias pruebas para encontrar el punto preciso.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jhmorales.es/blog/diseno-web/resolucion-de-pantalla-y-tamano-de-fuente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
