equalWidths jQuery Plugin
Escrito el 19 Apr, 2010 por Alexis en jQuery
Si algunas vez te ha tocado diseñar una barra de navegación te habrás encontrado en más de una ocasión con que es bastante tedioso lograr que cada elemento interno tenga el mismo ancho para lograr un efecto uniforme. equalWidths es un plugin para jQuery que hace justamente eso, toma cada elemento seleccionado y le aplica un width uniforme.
Es plugin esta pensado para lograr un width para los child elements (<li>) de una lista, ya sea ordenada (<ol>) o desordenada (<ul>), pero no se limita a estos elementos ya que podemos integrarlo con lo que necesitemos.
En esta captura vemos como funciona el plugin:

Por defecto el plugin no eliminara el padding de nuestros elementos, pero si lo necesitamos se puede indicar que elimine el padding izquierdo, el derecho o ambos.
Su uso es de lo mas simple. Tenemos 3 opciones:
$('ul#main-nav').equalWidths({'stripPadding': 'child'}); $('ul#main-nav').equalWidths({'stripPadding': 'grand-child'}); $('ul#main-nav').equalWidths({'stripPadding': 'both'});
Asumiendo que vamos a aplicar equalWidths a una lista (<ul>) con una estructura como la siguiente: ul > li > a Entonces el elemento “child” será LI y se eliminara su padding. El elemento “grand-child” sera A y se eliminara su padding. Y si seleccionamos “both” evidentemente, se eliminara el padding de ambos elementos.
El plugin se encuentra en el código fuente de la pagina, pero te lo transcribo para que este más a mano:
/*! * equalWidths jQuery Plugin * Examples and documentation at: hhttp://aloestudios.com/tools/jquery/equalwidths/ * Copyright (c) 2010 Andy Ford * Version: 0.1 (2010-04-13) * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * Requires: jQuery v1.2.6+ */ (function($){ $.fn.equalWidths = function(options) { var opts = $.extend({ stripPadding: 'none' // options: 'child', 'grand-child', 'both' },options); return this.each(function(){ var child_count = $(this).children().size(); if (child_count > 0) { // only proceed if we've found any children var w_parent = $(this).width(); var w_child = Math.floor(w_parent / child_count); var w_child_last = w_parent - ( w_child * (child_count -1) ); $(this).children().css({ 'width' : w_child + 'px' }); $(this).children(':last-child').css({ 'width' : w_child_last + 'px' }); if((opts.stripPadding == 'child') || (opts.stripPadding == 'both')){ $(this).children().css({ 'padding-right': '0', 'padding-left': '0' }); } if((opts.stripPadding == 'grand-child') || (opts.stripPadding == 'both')){ $(this).children().children().css({ 'padding-right': '0', 'padding-left': '0' }); } } }); }; })(jQuery); $(function(){ $('#ejemplo-2').equalWidths(); // config por defecto $('#ejemplo-3').equalWidths({'stripPadding': 'both'}); //sin padding });
Este es un plugin que te solucionara muchos problemas en unas simples lineas, y hará que tu barra de navegación se luzca todavía más.
Un comentario to “equalWidths jQuery Plugin”
Trackbacks/Pingbacks
Back to TopDejar un comentario
Additional comments powered by BackType
















baires |19/4/2010| Site: twitter.com/baires
equalWidths #jQuery #Plugin http://goo.gl/fb/706XX
This comment was originally posted on Twitter