PDA

Ver la Versión Completa : [Autobombo DEC] Plugin StyleSwichter para jQuery


dec
20-04-2008, 06:21:17
Hola,

Sé que por aquí tiene que haber admiradores de jQuery (http://www.jquery.com/), no puede ser de otro modo, porque esta librería (¿o era biblioteca?) de JavaScript es admirable. Vamos, que viva la madre que parió al autor, podría decirse. Pues bien, que he escrito un sencillo plugin para jQuery de que quería informar por aquí, por si puede resultar de utilidad a alguien. ¡Y ya de paso podemos charlar un poco si queréis! :p

El plugin lo he llamado en un alarde de originalidad sin precedentes "StyleSwichter", y, puede usarse para cambiar una (o más) hojas de estilo de una página web. Su funcionamiento es muy sencillo: usando la función "DOM ready!" de jQuery, se pone en marcha el plugin, y después puede usarse otra de las funciones de este para establecer una determinada hoja de estilo.

Como veo que me lío y que más vale un ejemplo que ciento volando, aquí van ya una serie de enlaces sobre el plugin, para que podáis descargarlo, probarlo, y lo que queráis:

- Ejemplo "en línea" del plugin (http://www.bitacora.davidesperalta.com/archives/projects/styleswichter/example.html)

- Descarga directa del plugin + jQuery (http://www.bitacora.davidesperalta.com/archives/projects/styleswichter/styleswichter.zip)

- Página de mi bitácora dedicada al plugin (http://www.bitacora.davidesperalta.com/jquery-styleswichter/)

- Página del plugin Pass Meter en jQuery.com (http://plugins.jquery.com/project/styleswichter)

PD. Algunos llaman SPAM al autobombo. Pero yo no soy de esos. ¿O sí? :eek: :p

PD2. No; no has tenido un "deja vu", anuncié aquí también el plugin Pass Meter para jQuery (http://www.clubdelphi.com/foros/showthread.php?t=52818). :D

dec
20-04-2008, 18:17:39
Hola,

Me levanto y me pongo con el plugin, de modo que me doy cuenta de algo que he soñado esta noche: no hacía falta, en realidad, una de las funciones, de hecho el plugin puede hacer su trabajo con una sola función. Y así es como queda el plugin ahora mismo, copio aquí el código fuente, por si alguien está interesado... que lo dudo. :D :D


(function($){

$.fn.StyleSwichter = function(options){
var opts = $.extend({}, $.fn.StyleSwichter.defaults, options);
var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
$('link').each(function(i){
if(this.rel == 'stylesheet' && this.title == o.linkTitle){
if(o.cssPath != ''){
this.href = o.cssPath;
$.cookie(o.cookieName,this.href,{
path: o.cookiePath,
expires: o.cookieDays,
domain: o.cookieDomain,
secure: o.cookieSecure
});
}else if($.cookie(o.cookieName)){
this.href = $.cookie(o.cookieName);
}
return true;
}
});
return false;
};

$.fn.StyleSwichter.defaults={
cssPath: '',
cookiePath: '',
cookieDays: 30,
cookieDomain: '',
cookieSecure: false,
linkTitle: 'styleswichter',
cookieName: 'selected-style'
};

})(jQuery);


Esto reduce también el tamaño del plugin, que, comprimido, queda en unos 600 bytes. ;)

ArdiIIa
20-04-2008, 18:28:01
Ya lo comentaron en un par de hilos en el foro, pero lo vuelvo a comentar yo....

Llegaste a ver las MooTools (http://demos.mootools.net/). ?

dec
20-04-2008, 18:32:01
Hola,

Hum... MooTools... Quien hable de MooTools es que no conoce jQuery. :D :D :D :D

PD. En serio. Echaré un vistazo a las MooTools, pero, jQuery es mucha jQuery... :)

ArdiIIa
20-04-2008, 19:08:04
Hola,
PD. En serio. Echaré un vistazo a las MooTools, pero, jQuery es mucha jQuery... :)

Aunque solamente sea a las demos....:)

dec
20-04-2008, 19:15:23
Hola,

No; si, sí, si ya lo sé... :D :D :D :D

ArdiIIa
21-04-2008, 03:54:57
Mira, te pongo aquí un par de proyectos que utilizan ambos, por aquello de abarcar la mayor compatibilidad:

http://www.joomlaworks.gr/

Emilio
21-04-2008, 07:19:14
Pues tendremos que empezar a tener en cuenta jQuery dada la insistencia de David en hacer plugins para ella, en cuanto a StyleSwitcher, (creo que así es como querías llamarle) no veo la necesidad de depender de jQuery para cargar otra hoja de estilo y eso es lo que me intriga del asunto ¿cual es el motivo?

dec
21-04-2008, 08:29:16
Hola,

Ojo. Que no digo que Mootools esté mal o algo así. Sólo que cuando conocí jQuery la tomé cariño enseguida, por decirlo así, me enamoré. Y ahora es complicado elegir otra cosa, incluso aunque fuera "mejor", que, por otro lado, creo que no lo es. ;) :D

Respecto de la necesidad de usar jQuery para cargar otra hoja de estilo... no. Efectivamente, no es necesario. Pero hay que verlo desde el otro punto de vista, es decir, desde el punto de vista de alguien que ya está usando jQuery. Entonces merecerá la pena usar el plugin (si se quiere, vaya), incluso porque resulta más pequeño que otras soluciones.

No se trata de usar jQuery por usar el plugin, solamente, sino que, suponiendo que uno usa jQuery, usar sus plugins es lo "natural", por decirlo así. Porque, a fin de cuentas, todo lo que hace jQuery se puede hacer sin jQuery, pero, no se trata de eso, ¿verdad? Las cookies, por ejemplo. Se pueden manejar sin jQuery, claro, pero, existe un plugin de jQuery para manejar cookies, así que lo usamos.

Primero, porque es más sencillo que hacerlo sin él, y segundo porque ya se asume que se usa jQuery. Por otro lado, jQuery es "una nueva forma de escribir JavaScript", y que pesa (empaquetada) menos de 30 KB. Los 30 KB mejor desarrollados que he visto en mucho tiempo. ¡Si no existiera jQuery habría que inventarla! En serio, ¡no la probéis! Si no queréis caer en sus garras. :D :D

dec
23-04-2008, 13:46:13
Hola,

Je je je je... (http://coliss.com/articles/build-websites/operation/javascript/1027.html) Arigato! :) ;) :D

Ñuño Martínez
23-04-2008, 16:47:19
:eek: :eek: :eek:

Espera... ¿pero hablan bien o hablan mal de él? :rolleyes: :D

dec
23-04-2008, 16:50:07
Hola,

Pues parece (en inglés (http://translate.google.com/translate?u=http%3A%2F%2Fcoliss.com%2Farticles%2Fbuild-websites%2Foperation%2Fjavascript%2F1027.html&langpair=ja%7Cen&hl=es&ie=UTF-8)) que no hablan ni mal ni bien... simplemente lo refieren y enlazan.

Pero, vamos, que hablen de uno, aunque sea mal. ¡Sobre todo si es en japonés! :D :D :D