CSSLab » plugin http://www.csslab.cl Un laboratorio de ideas para la web en español Thu, 12 Jan 2012 02:32:35 +0000 en hourly 1 http://wordpress.org/?v= jQuery Timelinr http://www.csslab.cl/2011/08/18/jquery-timelinr/ http://www.csslab.cl/2011/08/18/jquery-timelinr/#comments Thu, 18 Aug 2011 20:23:49 +0000 Jorge Epuñan http://www.csslab.cl/?p=797

Dando vida al tiempo / Giving life to time

Selecciona tu idioma / Select your language:

EN

This simple plugin helps you to give more life to the boring timelines. Supports horizontal and vertical layouts, and you can specify parameters for most attributes: speed, transparency, etc..

New version available, 0.9.5

Configuration:

  • Include the jQuery library and this plugin:
<script src="js/jquery-1.6.1.min.js" type="text/javascript"></script>
<script src="js/jquery.timelinr-0.9.js" type="text/javascript"></script>
  • Inicialize-it with the default parameters:
  • <script type="text/javascript">
       $(function(){
          $().timelinr();
       });
    </script>
  • Or configure it as preferred:
  • <script type="text/javascript"> 
       $(function(){
          $().timelinr({
             orientation: 'horizontal',
             // value: horizontal | vertical, default to horizontal
             containerDiv: '#timeline',
             // value: any HTML tag or #id, default to #timeline
             datesDiv: '#dates',
             // value: any HTML tag or #id, default to #dates
             datesSelectedClass: 'selected',
             // value: any class, default to selected
             datesSpeed: 'normal',
             // value: integer between 100 and 1000 (recommended) or 'slow', 'normal' or 'fast'; default to normal
             issuesDiv : '#issues',
             // value: any HTML tag or #id, default to #issues
             issuesSelectedClass: 'selected',
             // value: any class, default to selected
             issuesSpeed: 'fast',
             // value: integer between 100 and 1000 (recommended) or 'slow', 'normal' or 'fast'; default to fast
             issuesTransparency: 0.2,
             // value: integer between 0 and 1 (recommended), default to 0.2
             issuesTransparencySpeed: 500,
             // value: integer between 100 and 1000 (recommended), default to 500 (normal)
             prevButton: '#prev',
             // value: any HTML tag or #id, default to #prev
             nextButton: '#next',
             // value: any HTML tag or #id, default to #next
             arrowKeys: 'false',
             // value: true/false, default to false
             startAt: 1,
             // value: integer, default to 1 (first)
             autoPlay: 'false',
             // value: true | false, default to false
             autoPlayDirection: 'forward',
             // value: forward | backward, default to forward
             autoPlayPause: 2000
             // value: integer (1000 = 1 seg), default to 2000 (2segs)
          });
       });
    </script>

    HTML markup must be as follows:

    <div id="timeline">
       <ul id="dates">
          <li><a href="#">date1</a></li>
          <li><a href="#">date2</a></li>
       </ul>
       <ul id="issues">
          <li id="date1">
             <p>Lorem ipsum.</p>
          </li>
          <li id="date2">
             <p>Lorem ipsum.</p>
          </li>
       </ul>
       <a href="#" id="next">+</a> <!-- optional -->
       <a href="#" id="prev">-</a> <!-- optional -->
    </div>

    Icon designed by Sebastián Cortés

    Changelog:
    • 0.9.5: IE8 bug smashed while dates are animated (vertical); CSS updated: filter added due to IE8 bad-support of PNG transparency (#issues img)
    • 0.9.4: Added autoPlay, autoPlayPause and autoPlayDirection (disabled by default).
    • 0.9.3: Added startAt: select where do you want the timeline to start.
    • 0.9.3: Fixed bug with animation while pressing the navigation buttons.
    • 0.9.2: Fixed Firefox bug with event.preventDefault();
    • 0.9.1: Added keyboard navigation, see vertical demo.
    • 0.9.1: preventDefault(); added to arrows.
    • 0.9.1: Documentation improved.

    ES

    Este sencillo plugin ayuda a que le des más vida y estilo a las aburridas líneas de tiempo. Soporta diagramaciones horizontales y verticales, y puedes parametrizar la mayoría de los atributos: velocidades, transparencias, etc.

    Nueva versión disponible, 0.9.5

    Configuración:

    • Incluye la librería jQuery y luego este plugin:
    <script src="js/jquery-1.6.1.min.js" type="text/javascript"></script>
    <script src="js/jquery.timelinr-0.9.js" type="text/javascript"></script>
  • Inicialízalo con los parámetros por defecto:
  • <script type="text/javascript"> 
       $(function(){
          $().timelinr();
       });
    </script>
  • O customízalos:
  • <script type="text/javascript"> 
       $(function(){
          $().timelinr({
             orientation: 'horizontal',
             // valores: horizontal | vertical, por defecto horizontal
             containerDiv: '#timeline',
             // valores: cualquier etiqueta HTML ó #id, por defecto #timeline
             datesDiv: '#dates',
             // valores: cualquier etiqueta HTML ó #id, por defecto #dates
             datesSelectedClass: 'selected',
             // valores: cualquier clase, por defecto selected
             datesSpeed: 'normal',
             // valores: número entre 100 y 1000 (recomendado) ó 'slow', 'normal', 'fast', por defecto normal
             issuesDiv : '#issues',
             // valores: cualquier etiqueta HTML ó #id, por defecto #issues
             issuesSelectedClass: 'selected',
             // valores: cualquier clase, por defecto selected
             issuesSpeed: 'fast',
             // valores: número entre 100 y 1000 (recomendado)ó 'slow', 'normal', 'fast', por defecto fast
             issuesTransparency: 0.2,
             // valores: número entre 0 y 1 (recomendado), por defecto 0.2
             issuesTransparencySpeed: 500,
             // valores: número entre 100 y 1000 (recomendado), por defecto 500 (normal)
             prevButton: '#prev',
             // valores: cualquier etiqueta HTML ó #id, por defecto #prev
             nextButton: '#next',
             // valores: cualquier etiqueta HTML ó #id, por defecto #next
             arrowKeys: 'false',
             // valores: true/false, por defecto false
             startAt: 1,
             // valor: número entre 1 y el máximo de elementos, por defecto 1 (primero)
             autoPlay: 'false',
             // valor: true | false, por defecto false
             autoPlayDirection: 'forward',
             // valor: forward | backward, por defecto forward
             autoPlayPause: 2000
             // valor: número (1000 = 1 seg), por defecto 2000 (2segs)
          })
       });
    </script>

    El marcado HTML debe ser de la siguiente forma:

    <div id="timeline">
       <ul id="dates">
          <li><a href="#">date1</a></li>
          <li><a href="#">date2</a></li>
       </ul>
       <ul id="issues">
          <li id="date1">
             <p>Lorem ipsum.</p>
          </li>
          <li id="date2">
             <p>Lorem ipsum.</p>
          </li>
       </ul>
    <a href="#" id="next">+</a> <!-- opcional -->
    <a href="#" id="prev">-</a> <!-- opcional -->
    </div>

    Ícono diseñado por Sebastián Cortés

    Cambios:
    • 0.9.5: bug de IE8 aplastado cuando las fechas eran animadas (vertical); CSS mejorado: filter agregado por el mal soporte de IE8 con los PNG transparentes (#issues img)
    • 0.9.4: Agregados autoPlay, autoPlayPause y autoPlayDirection (deshabilitados por defecto).
    • 0.9.3: Agregado startAt: selecciona en qué punto quieres que comience la línea de tiempo.
    • 0.9.3: Solucionado bug con animación mientras presionas los botones de navegación.
    • 0.9.2: Solucionado bug Firefox con event.preventDefault();
    • 0.9.1: Agregado navegación por teclado, ver ejemplo vertical.
    • 0.9.1: preventDefault(); agregado a las flechas.
    • 0.9.1: Documentación mejorada.

    Demo Horizontal

    Demo Vertical

    Demo Autoplay

    Download/Bajar Plugin 0.9.5 + Demos

    Copyright 2011, CSSLab.cl – Free under the MIT license.

    ]]>
    http://www.csslab.cl/2011/08/18/jquery-timelinr/feed/ 278
    Otro más para matar IE6 http://www.csslab.cl/2010/10/14/otro-mas-para-matar-ie6/ http://www.csslab.cl/2010/10/14/otro-mas-para-matar-ie6/#comments Thu, 14 Oct 2010 20:38:11 +0000 Jorge Epuñan http://www.csslab.cl/?p=659 No bastan los hacks, los comentarios condicionales, reseters, advertenciasInternet Explorer 6 sigue dándonos muchos problemas. Pero les traigo una excelente solución ya que es tan invasiva, tan pero taaaaan invasiva que toma por completo control de IE6 y hace q se comporte como se debe.

    Google Frame en CSSLab.cl

    Google Chrome Frame es un plugin open source que trae la rapidez y versatilidad de Webkit (el motor por detrás de Chrome y Safari) directo a IE6. Con esto, podrás fácilmente utilizar todo lo que siempre quisiste sin preocuparte de este malogrado browser, incluyendo CSS3, HTML5 y Javascript.

    Lo bueno es que utilizarlo es pan comido: basta con agregar una etiqueta dentro del <head></head> en todas tus páginas que detecta si el usuario -que utiliza IE6- tiene o no ya instalado Google Frame: si no lo tiene, lo redirecciona a una página para su instalación; si el usuario ya lo tiene instalado, comienza automáticamente a instalarse:

    <meta http-equiv="X-UA-Compatible" content="chrome=1">

    Alternativamente, tambien puedes utilizar un script que realiza la misma detección:

    <!--[if IE]>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/chrome-frame/1/CFInstall.min.js"></script>
    <script>
       CFInstall.check({
          destination: "http://www.misitio.com"
       });</script>
    <![endif]-->

    Esto incluye un <iframe> en el sitio donde le indica al usuario las instrucciones para instalar Google Frame. Una vez instalado, el usuario es redireccionado a lo que hayas declarado en destination.

    Google Frame en CSSLab.cl

    ¿Y cómo funciona?

    La primera vez que lo instalé en un PC con WinXP e IE6, realmente me sorprendió. Lo que hace es colocar un marco por sobre el browser mismo, sin que se note que es algo ajeno al navegador. Este marco funciona con todos los botones que por defecto el usuario típico de IE6 está ya acostumbrado (y los que son algunas de las razones por las que no se actualizan nunca). Se ve como IE6, pero su motor es Webkit, lo que más nos interesa. Atrévanse a utilizarlo en sus proyectos, y ojalá puedan tener más tiempo y libertad para crear y menos para arreglar defectos.

    Links:

    ]]>
    http://www.csslab.cl/2010/10/14/otro-mas-para-matar-ie6/feed/ 6
    jQuery browserSizr http://www.csslab.cl/2009/07/22/jquery-browsersizr/ http://www.csslab.cl/2009/07/22/jquery-browsersizr/#comments Wed, 22 Jul 2009 15:16:50 +0000 Jorge Epuñan http://www.csslab.cl/?p=452 jQuery browserSizr

    Your flexible fixed layout / Tu estructura fija, flexible

    Selecciona tu idioma / Select your language:

    EN

    Coding liquid layouts for your website can become a major problem due to many factors to be taken into when the user resizes the browser: images that doesn’t fit the width, texts wrapping as not expected, columns breaking… not to mention that working with percentages in CSS is problematic among different browsers. With a fixed layout this should not happen, because you have more control over the structure itself and the box model behaves as you expect if you use a good CSS reseter.

    With jQuery browserSizr you’ll have more control over CSS styles when there is a significant change in browser size. It has 4 of the most common screens width:

    browserSizr: 4kb

    • smartphones (310px or less)
    • less than 1024px (from 311px to 1023px)
    • greater than 1024px (from 1024px to 1279px – including 1024px)
    • greater than 1280px (from 1280px and higher – including 1280px)

    Specifically, browserSizr detects the current width of your browser or it’s resize and injects a specific class when it is in the range you’ve activated. Through CSS and a bit of specificity, you can define what happens when the browser is in each resolution:

    #container {
       width: 960px; /* normal width */
       font-size: 14px;
    }
       #container.lower1024 {
          width: 740px; /* width for less than 1024px */
          font-size: 12px; /* smaller font-size */
       }
       #container.over1280 {
          width: 1200px; /* width for over 1280px */
          font-size: 16px; /* bigger font-size */
       }

    See example

    Configuration:

    • Include the jQuery library and this humble plugin:
      <script src="jquery.js" type="text/javascript"></script>
      <script src="jquery.browserSizr.js" type="text/javascript"></script>
    • Inicialize-it with the default parameters:
      <script type="text/javascript">
         $(function(){
            $().browserSizr();
         })
      </script>
    • Or configure it as preferred
      $().browserSizr({
         containerDiv: '#container',
         //containerDiv - value: any HTML tag or #id, default to #container
         debug: 'off', 
         //debug-  value: on | off, default to 'off'
         smartphones: 'off',
         //smartphones - value: on | off, default to 'off'
         lower1024: 'on',
         //lower1024 - value: on | off, default to 'on'
         over1024: 'on',
         //over1024 - value: on | off, default to 'on'
         over1280: 'off'
         //over1280 - value: on | off, default to 'off'
      });

    ES

    Crear estructuras líquidas para tu sitio web puede llegar a ser un gran problema debido a los muchos factores que se deben tomar en cuenta cuando el usuario escala el browser: imágenes que se pueden pasar del ancho, textos que no se cortarán como esperabas, columnas que pueden llegar a quebrarse… sin hablar de que trabajar con porcentajes es problemático entre los diferentes navegadores. Con un layout fijo esto no debería ocurrir ya que tienes más control sobra la estructura misma y el modelo de caja se comporta como esperas si haces uso de un buen reseter de estilos CSS.

    Con jQuery browserSizr podrás tener más control sobre los estilos CSS cuando existe una variación significativa la dimensión del browser: en cuántos pixeles quedaría el tamaño de la tipografía del menú a 1280x1024px, o que las imágenes queden a 80% de su tamaño en resoluciones de 800x600px por ejemplo. Tienes los 4 anchos de pantallas más comunes:

    browserSizr: 4kb

    • smartphones (310px o menos)
    • menor que 1024px (de 311px a 1023px)
    • mayor que 1024px (de 1024px a 1279px – incluye 1024px)
    • mayor que 1280px (de 1280px o más – incluye 1280px)

    En específico, browserSizr detecta el actual ancho del navegador ó su redimensionado e inyecta una class específica cuando se encuentra en el rango que hayas activado. A través de CSS y un poco de especificidad, puedes definir qué quieres que ocurra cuando el browser se encuentre en cada resolución:

    #container {
       width: 960px; /* ancho normal del sitio web */
       font-size: 14px;
    }
       #container.lower1024 {
          width: 740px; /* ancho para resoluciones menores que 1024px */
          font-size: 12px; /* menor tamaño de fuente */
       }
       #container.over1280 {
          width: 1200px; /* ancho para resoluciones mayores que 1280px */
          font-size: 16px; /* mayor tamaño de fuente */
       }

    Ver ejemplo

    Configuración:

    • Incluye la librería jQuery y luego, este humilde plugin:
      <script src="jquery.js" type="text/javascript"></script>
      <script src="jquery.browserSizr.js" type="text/javascript"></script>
    • Inicialízalo con los parámetros por defecto:
      <script type="text/javascript">
         $(function(){
            $().browserSizr();
         })
      </script>
    • O configúralo como más prefieras:
      $().browserSizr({
         containerDiv: '#container',
         //containerDiv - id o etiqueta donde se inyectará la class
         debug: 'off',
         //debug - ventana debug on | off, por defecto off
         smartphones: 'off',
          //smartphones - valores: on | off, por defecto 'off'
         lower1024: 'on',
          // valores: on | off, por defecto 'on'
         over1024: 'on',
          //over1024 - valores: on | off, por defecto 'on'
         over1280: 'off'
          //over1280 - valores: on | off, por defecto 'off'
      });

    Bajar/Download plugin (.zip 1kb)

    Bajar/Download plugin+demos (.zip 22kb)

    browserSizr logo by toledopasarin

    Little extension as Jorge Sousa required, now it detects just the height of the browser window within 2 values: less than 600px and over 600px.

    Pequeña extensión como solicitada por Jorge Sousa, donde ahora detecta sólo el alto de la ventana dentro de 2 rangos: menor que 600px y mayor a 600px.

    Ver Ejemplo Alto Ventana

    Bajar/Download plugin + demo (.zip 24kb)

    ]]>
    http://www.csslab.cl/2009/07/22/jquery-browsersizr/feed/ 14
    jQuery Blox http://www.csslab.cl/2009/05/25/jquery-blox/ http://www.csslab.cl/2009/05/25/jquery-blox/#comments Mon, 25 May 2009 22:14:15 +0000 Jorge Epuñan http://www.csslab.cl/?p=432 jQuery Blox in CSSLab.cl

    Una nueva manera de mostrar más información / A new way to show more info

    Selecciona tu idioma / Select your language:

    ES

    Con jQuery Blox puedes desplegar información de una manera diferente, y con una fácil y rápida configuración. Basta con que armes tu HTML siguiendo un simple patrón de bloques, y definirle al plugin los nombres de los elementos que estás construyendo (o mantener los pre-configurados); Blox se encarga de crear una mayor interacción de tu información hacia el usuario.

    Ver Demo 1

    Blox ofrece 3 estados:

    1. Normal: cuando el usuario no interviene con la caja HTML que contiene los bloques.
    2. Hover: cuando el mouse está sobre alguna de las cajas, por defecto Blox hace las otras semi-transparentes.
    3. Click: cuando se hace click a alguna caja, ésta se amplía animándose hasta cubrir el total de la caja contenedora por sobre las demás y muestra la información anexa a esa caja.

    jQuery Blox: 3 states of interaction

    El uso de Blox no debería limitar la creatividad de quien la vaya a usar, pero es necesario conocer y mantener ciertas reglas para su correcto y total funcionamiento, principalmente de estructura HTML y de estilos CSS:

    Estructura HTML

    Primero necesitas una caja que contenga las demás cajas; por defecto Blox la define con el id blox. Esta caja contenedora #blox es la que soportará a las demás cajas, las que Blox denomina por defecto con una class blox_content. Esta caja .blox_content es la que tiene 2 importantes funciones: soporta al contenido que estará oculto en el primer estado, y a una tercera caja llamada .blox_box que es la gatillante de toda la interacción de Blox.

    El HTML básicamente debe ser como la siguiente estructura:

    <div id="blox"> /* un contenedor */
       <div class="blox_content" id="box_1"> /* varias cajas de contenido */
           <div class="blox_box"> /* caja que soporta el click */
              Box 1
           </div>
           Contenido desplegado cuando Box 1 es clickeado.<a href="#" class="blox_close">Cerrar Bloque</a> /* contenido oculto pero que se muestra al click en la caja anterior */
       </div>
       /* otras cajas con el mismo patron */
    </div>

    Estilo CSS

    La magia está en el uso de posición absoluta para que las cajas se muevan con libertad y fluidez. Para que las cajas se comporten así, deben tener un estilo específico. La que contiene a todas las cajas, #blox, debe tener un alto fijo, un ancho fijo y posición relativa ya que será quien soporte a las cajas menores .blox_content, las que tienen posición absoluta, alto fijo y ancho fijo. Cada una de las cajas .blox_content, deberían tener ubicaciones diferentes mediante id único, respecto a #blox utilizando las propiedades left y top.

    La tercera caja .blox_box también debería tener un ancho y alto fijo, seguramente el mismo que su caja padre .blox_content, y para el resto de los elementos tienes libertad total de hacer lo que quieras con su estilo.

    Finalmente, el CSS básico es el siguiente:

    #blox {
       width: 400px;
       height: 400px; 
       position: relative;
    }
       .blox_content {
          width: 200px;
          height: 400px; 
          position: absolute;
       }
          #box_1 {
             top: 0; 
             left: 0;
          }
          #box_2 {
             top: 0; 
             left: 200px;
          }
          /* asi con cada una de las otras cajas */
       .blox_box {
          width: 200px; 
          height: 400px; 
       }

    jQuery Blox: box structure

    Configuración

    Por defecto Blox viene pre-configurado de fábrica, y su programación permite que alteres los siguientes parámetros:

    • container: id de la caja contenedora, por defecto #blox
    • content: class de las cajas con contenido, por defecto .blox_content
    • box: class de la caja que inicia la secuencia para mostrar el contenido, por defecto .blox_box
    • close: class del link o botón que cierra caja caja desplegada, por defecto .blox_close
    • transparency: [yes/no]¿requieres transparencia? por defecto yes
    • fadein: nivel de transparencia (de 0 a1) de las cajas al mouseover, por defecto 0.2
    • fadeout: nivel de transparencia (de 0 a1) de las cajas al mouseout, por defecto 1
    • animation: [yes/no]¿requieres animación? por defecto yes
    • timein: tiempo en ms en que cada caja se demora en abrir, por defecto 100
    • timeout: tiempo en ms en que cada caja se demora en cerrar, por defecto 200
    • direction: [lefty/righty] hacia donde se abrirá cada caja, por defecto a la izquierda lefty

    Para utilizarlo con estos valores por defecto, sólo debes seguir 2 pasos básicos:

    1. Agregar tu librería de jQuery favorita y este humilde plugin:
      <script src="jquery-1.3.1.min.js" type="text/javascript"></script>
      <script src="jqueryblox-v0.9.js" type="text/javascript"></script>
    2. Activarlo:
      <script type="text/javascript">
          $(function(){
              $().blox();
          });
      </script>

    Si quieres configurarlo según tus necesidades, basta ir modificando los parámetros como te sean necesarios:

     <script type="text/javascript">
         $(function(){
             $().blox({
                 container: '#contenedor_blox',
                 close: '.boton_cierra',
                 direction: 'righty',
                 fadein: 0.6
             });
         });
    </script>

    Ver Demo 2

    Ver Demo 3

    EN

    With jQuery Blox you can display information on a whole new way with a quick and easy setup. Just write yout HTML in a simple block pattern, and tell the plugin your element names (or maintain the pre-configured ones); Blox will display your information with a new interaction for your user.

    See Demo 1

    Blox offers 3 states:

    1. Normal: when the user does not interfere with the box containing the HTML blocks.
    2. Hover: when the mouse is over one of the boxes, by default Blox makes the others semi-transparent.
    3. Click: when you click on any box, it will animate its expansion to cover the total of the container above all other blocks, to show the information attached to that block.

    jQuery Blox: 3 states of interaction

    Using Blox should not limit the creativity of who will use it, but it needs to maintain certain rules for their correct and full operation, mainly HTML strucuture and CSS styles:

    HTML Structure

    First you’ll need a box containing all other boxes, by default Blox calls it with the id blox. This container #blox will support all the blocks which Blox names with the class box_content. This block .box_content have 2 major functions: support the content hidden in the first state, and contains a third block called with the class .blox_box which is the one that fires the Blox interaction, expanding and moving the boxes to display the hidden information.

    The HTML should be basically as follows:

    <div id="blox"> /* a container */
       <div class="blox_content" id="box_1"> /* many content blocks */
          <div class="blox_box"> /* box that fires the interaction */
             Box 1
          </div>
          Content displayed when Box 1 is clicked, above Box 2.<a href="#" class="blox_close">Close Box</a> /* hidden content displayed at .blox_box click */
       </div>
       /* other boxes with the same pattern */
    </div>

    CSS Style

    The magic is in the use of absolutely positioned blocks to move them freely and smoothly For the blocks to behave like we want, they must have a specific style. The box that contains all other blocks #blox must have fixed height and width and relative position to support the smaller boxes named .blox_content which must have fixed height and width as well but absolute positioned. Each one of this boxes .blox_content should have different placements, givven through an unique #id using the properties left and top.

    The third box .blox_box should also have a fixed width and height, probably the same as its parent .blox_content. For the rest of the elements you have total freedom to do whatever you want with their style.

    Finally, the basic CSS is as follows:

    #blox {
       width: 400px;
       height: 400px; 
       position: relative;
    }
       .blox_content {
          width: 200px;
          height: 400px; 
          position: absolute;
        }
           #box_1 {
              top: 0; 
              left: 0;
           }
           #box_2 {
              top: 0; 
              left: 200px;
           }
          /* like this for each of other boxes */
          .blox_box {
             width: 200px; 
             height: 400px; 
          }

    jQuery Blox: box structure

    Configuration

    By default, Blox comes preconfigured from the factory, and its programming allows you to alter the following parameters:

    • container: container box id, default to #blox
    • content: class of each content box, default to .blox_content
    • box: class of the box that fires the content display, default to .blox_box
    • close: class for the link (button) that closes the content box, default to .blox_close
    • transparency: [yes/no] do you want transparency on hover? default to yes
    • fadein: transparency level (from 0 to 1) when you mouseover a box, default to 0.2
    • fadeout: transparency level (from 0 to 1) when you mouseout a box, default to 1
    • animation: [yes/no] do you want the boxes to animate? default to yes
    • timein: time in ms that each box takes to display the content, default to 100
    • timeout: time in ms that each box takes to hide the content, default to 200
    • direction: [lefty/righty] which direction each box is opened, default to left lefty

    To use it with the default values, just follow this 2 simple steps:

    1. Add your favorite jQuery library and this humble plugin:
      <script src="jquery-1.3.1.min.js" type="text/javascript"></script>
      <script src="jqueryblox-v0.9.js" type="text/javascript"></script>
    2. Activate it:
      <script type="text/javascript">
          $(function(){
              $().blox();
          });
      </script>

    If you want to customize it to suit your needs, just change the necessary parameters:

     <script type="text/javascript">
         $(function(){
             $().blox({
                 container: '#my_boxes,
                 close: '.closeboxes,
                 direction: 'righty',
                 fadein: 0.6
             });
         });
    </script>

    See Demo 2

    See Demo 3

    Baja el plugin / Get the plugin

    Bajar/Download plugin (.zip 1kb)

    Bajar/Download plugin+demos (.zip 220kb)

    Blox logo by youfeelme.biz

    ]]>
    http://www.csslab.cl/2009/05/25/jquery-blox/feed/ 22
    Videocast 3: creando un plugin para jQuery http://www.csslab.cl/2009/01/28/videocast-3-creando-un-plugin-para-jquery/ http://www.csslab.cl/2009/01/28/videocast-3-creando-un-plugin-para-jquery/#comments Wed, 28 Jan 2009 19:30:05 +0000 Jorge Epuñan http://www.csslab.cl/?p=385 Ayer se me acerca un colega de trabajo con algunas preguntas relativas a un proyecto de cómo encontrar una solución a una funcionalidad utilizando jQuery. Papel y lápiz en mano, me puse a explicarle cómo imaginaba que sería, pero después pensé en cómo hacerlo mejor aún, con menos líneas de código y en los posible extensible, vale decir, que su mantención o posterior actualización implique poca o nula modificación.

    Luego del trabajo salí a trotar y ¡ZAZ! La solución viene a mi cabeza. De vuelta la puse en práctica y decidí grabarla en un videocast, pero además de esa sencilla solución creí pertinente mostrar cómo a partir de una simple funcionalidad (o compleja, dependiendo de lo que hagan) pueden transformarla en un plugin configurable a partir de opciones, para jQuery.

    Cuando creé mi primer plugin tuve bastante dificultad al no encontrar una documentación detallada, y espero con este aporte visual poner al alcance de quienes necesiten material didáctico para sus proyectos web. Hago el llamado también a que puedan compartir sus desarrollos libremente; sólo así podremos mejorar la calidad de los sitios web que vemos día a día. Como lo he hecho en otras ocasiones, pongo a disposición este mismo sitio para hacer un review y difundirlos.

    Dado los problemas que tuve con ediciones anteriores, esta vez aumenté bastante la calidad y por lo tanto el peso de los archivos de video. Pongo a disposición una versión streaming (.flv, 101mb) y una para que puedan descargar y ver de la tranquilidad de donde mejor quieran (.mov, 47mb comprimido).

    Videocast 3 versión stream
    Videocast 3 versión completa

    Sebastián, espero haber solucionado tu problema, y feliz cumpleaños.

    ]]>
    http://www.csslab.cl/2009/01/28/videocast-3-creando-un-plugin-para-jquery/feed/ 11
    Muerte a IE: nuevo plugin http://www.csslab.cl/2008/09/24/muerte-a-ie-nuevo-plugin/ http://www.csslab.cl/2008/09/24/muerte-a-ie-nuevo-plugin/#comments Wed, 24 Sep 2008 22:49:57 +0000 Jorge Epuñan http://www.csslab.cl/2008/09/24/muerte-a-ie-nuevo-plugin/ Al parecer ando inspirado y con ganas de aportar más y más a la comunidad de desarrollo web del universo. Y con el afán de aumentar a los usuarios disidentes de Internet Explorer 6 y 7 (browser que también apesta), he creado un nuevo y simpático plugin que espero ayude a que más usuarios se conviertan a cualquier de los otros browsers que son bastante mejores.

    En esta ocasión les presento killIE, un plugin para jQuery que al activarse despliega un glamoroso y atento mensaje que advierte al usuario que está navegando con un pésimo browser y que gentilmente invita a probar uno nuevo. Como todo buen plugin, tiene ciertos parámetros que son configurables y su peso es ínfimo, lo que invita a ser utilizado global y masivamente.

    killIE plugin en acción

    Instrucciones:

    1. Incluye tu librería jQuery favorita (recomiendo 1.2+)
    2. Incluye el plugin jquery.killIE.js
    3. Inícialo:

      $(document).ready(function(){
           $().killIE();
      });

    4. Algunos parámetros:

      text: "un texto diferente al propuesto",
      style: "estilos CSS diferentes al propuesto",
      browser: firefox (por defecto) / opera / safari / chrome,
      version: ie6 (por defecto) / ie7

    Ver demo (con IE6, claro).

    Ver demo (ahora con IE7 y algunos parámetros).

    Bajar jQuery killIE plugin (1.2kb .zip)

    ]]>
    http://www.csslab.cl/2008/09/24/muerte-a-ie-nuevo-plugin/feed/ 18
    jQuery Plugin: simpleAccordion http://www.csslab.cl/2008/09/17/jquery-plugin-simpleaccordion/ http://www.csslab.cl/2008/09/17/jquery-plugin-simpleaccordion/#comments Wed, 17 Sep 2008 13:52:00 +0000 Jorge Epuñan http://www.csslab.cl/2008/09/17/jquery-plugin-simpleaccordion/ Un nuevo plugin para jQuery sale a la luz. Nuevamente, iluminado por una necesidad en un proyecto web, qué mejor que hacer las cosas a mi manera y al mismo tiempo aportar al mundo con algo que quizás le será útil a alguien más.

    Un colega necesitaba hacer una sección de Preguntas Frecuentes (FAQ) y que las respuestas a las preguntas se desplegaran mediante el efecto de acordeón. Bastante simple, ¿no? Bueno, como sabrán le recomendé que lo más semántico era utilizar listas de definición (<dl>). Pero los plugins que encontraba eran muy grandes para lo poco que necesitaba (10kb+), y necesitaban además de otros plugins de jQuery para funcionar, como el Dimensions, lo que hacía que pesara aún más el total. Así que construí uno simple, customizado y parametrizable, y que finalmente pesa apenas 1kb.

    Modo de Uso:

    1. Incluye tu librería de jQuery favorita
    2. Incluye el plugin jquery.simpleAccordion.js
    3. Inicialízalo cuando el DOM esté cargado:

      $(document).ready(function(){
           $(‘#id_elemento’).simpleAccordion();
      });

      Algunos parámetros:

      • header: "selector" (cualquier etiqueta, class o id que activará el evento; <dt> es por defecto)
      • collapsable: "selector" (igual que el anterior; <dd> es por defecto)
      • speed: integral (un número en milisegundos ó las velocidades "slow", "normal" ó "fast"; fast es por defecto)
    4. Tu código debe ser algo como esto:

      <dl id="id_elemento">
           <dt>Elemento activo</dl>
           <dd>Elemento colapsable</dd>
      </dl>

      ó para esto:

      <ul id="id_elemento_2">
           <li class="cabeza">Elemento activo</li>
           <li class="colapsable">Element collapsable</li>
      </ul>

      $(document).ready(function(){
           $(‘#id_elemento_2′).simpleAccordion({
                header: ".cabeza",
                collapsable: ".colapsable",
                speed: 200
           });
      });

    5. Tómate una cerveza helada, ya estás listo.

    Ver ejemplo

    Bajar jQuery simpleAccordion plugin v0.9 (.zip 24kb total con ejemplo)

     

    Requerimiento:

    • jQuery 1.2+
    ]]>
    http://www.csslab.cl/2008/09/17/jquery-plugin-simpleaccordion/feed/ 6
    jQuery plugin: fontSizer http://www.csslab.cl/2008/08/07/jquery-plugin-fontsizer/ http://www.csslab.cl/2008/08/07/jquery-plugin-fontsizer/#comments Thu, 07 Aug 2008 20:41:38 +0000 Jorge Epuñan http://www.csslab.cl/2008/08/07/jquery-plugin-fontsizer/ Un nuevo plugin para el grandioso jQuery ha nacido. Por un proyecto en el cual estoy involucrado, era necesario un método parametrizable para manejar aumento/disminución del tamaño de fuentes. Busqué mucho un plugin para esto, y me frustré bastante dado la carencia del ideal, así que gracias a la habilidad del web developer Rodrigo Augosto, surge este nuevo aporte a la accesibilidad web.

    Ver ejemplo

    Modo de Uso

    1. Adjuntar jquery.js y jquery.fontSizer.js entre las etiquetas <head></head>
    2. Definir id’s para ambos links, por ejemplo #aumentar (+) y #disminuir (-)
    3. Inicializar el plugin, como en el ejemplo:

         $(document).ready(function(){
            $("#aumentar").fontSizer({
               action: "up"
            });
            $("#disminuir").fontSizer({
               action: "down",
            });
         });

    4. Eso es. El único parámetro obligatorio es indicar la acción de cada link mediante action. Los parámetros son:
      • action: "up/down" (requerido).
      • elements: "elemento" (un id, class o etiqueta donde actuará el cambio de tamaño de fuente).
      • increment: número (en cuántos pasos serán el cambio de tamaño; por defecto es de 1 en 1).
      • max: número (tamaño máximo del tamaño de fuente; por defecto es 30px).
      • min: número (tamaño mínimo del tamaño de fuente; por defecto es 8px).

    Por ahora solo ha sido probado con jQuery 1.2.6, pero no debería de tener problemas con versiones desde 1.2+

    Descargar (.zip)

    ]]>
    http://www.csslab.cl/2008/08/07/jquery-plugin-fontsizer/feed/ 10
    Íconos para mejor usabilidad http://www.csslab.cl/2007/12/03/conos-para-mejor-usabilidad/ http://www.csslab.cl/2007/12/03/conos-para-mejor-usabilidad/#comments Mon, 03 Dec 2007 20:13:11 +0000 Jorge Epuñan http://www.csslab.cl/2007/12/03/conos-para-mejor-usabilidad/ Relativo a un proyecto en que estoy y del cual han salido otros interesantes artículos anteriores, creé un plugin de jQuery para agregar íconos a los links que sean relativos a descargas de diferentes tipos de documentos, a links externos (target="_blank"), a direcciones de e-mail ("mailto:") y a links de impresión ("window.print"). Como surgió la necesidad, y no encontré ninguno que hiciera eso en la página de plugins de jQuery, me puse a hacer el mio propio.

    UsableIcons v1.0 plugin for jQuery

    No es nada del otro mundo de complejo; en realidad es bastante simple. Lo que hace es leer las etiquetas <a> buscando por sus atributos href y target por las extensiones anteriormente nombradas y si las encuentra, agrega una class respectiva que tiene ese ícono. Lo bueno es que puedes configurar en qué <div> aplicarlo a través de un id o class.

    Es la versión 1.0 y se esperan mejoras, dependiendo del feedback.

    Página oficial

    Ver demo

    Bajar jquery.usableicons plugin v1.0 (.zip)

    ]]>
    http://www.csslab.cl/2007/12/03/conos-para-mejor-usabilidad/feed/ 7
    1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139|140|141|142|143|144|145|146|147|148|149|150|151|152|153|154|155|156|157|158|159|160|161|162|163|164|165|166|167|168|169|170|171|172|173|174|175|176|177|178|179|180|181|182|183|184|185|186|187|188|189|190|191|192|193|194|195|196|197|198|199|200|201|202|203|204|205|206|207|208|209|210|211|212|213|214|215|216|217|218|219|220|221| viagrea onling viagra tablets name and cost levitra and dapoxetine youtube/viagra cialis extra generic viagra accepting american express buy generic viagra online with no prescription with mastercard generic levitra 20 mg levitra pro buy viagra online in ireland is it illegal to order viagra from outside the united states cheapest generic cialis buy cheap levitra overnight delivery cialis wears off airport security generic viagra generic finasteride viagra for sale using paypal ukAccutane Online Doxycycline online Buy Cheap Lexapro Online No Prescription Prednisone Online Buy Accutane No Prescription