/** * @preserve Copyright 2011 Syd Lawrence ( www.sydlawrence.com ). * Version: 0.1 * * Licensed under MIT and GPLv2. * * Adapted from Nicholas Gallagher's CSS drop shadows without images demo * http://nicolasgallagher.com/css-drop-shadows-without-images/demo/ * * Usage: $('.box').shadow(options); * */ (function( $ ){ $.fn.shadow = function(options) { // options could just be the type if (typeof options !== "object") options = {type:options}; // set up the options using the defaults options = $.extend({}, $.fn.shadow.defaults, options); var els = this; // add the necessary css classes els.addClass('jquery-shadow'); els.addClass('jquery-shadow-'+options.type); // some require extras js switch(options.type) { case 'sides' : $.fn.shadow.sides(this,options); break; case 'rotated' : $.fn.shadow.rotated(this,options); break; } // for good measure :) $.fn.shadow.borderRadius(this,options.radius); return this; }; // rotate these bad boys $.fn.shadow.rotated = function(els,options) { // one property to rule them all, if only! els.css('-webkit-transform','rotate('+options.rotate+')') .css('-moz-transform','rotate('+options.rotate+')') .css('-ms-transform','rotate('+options.rotate+')') .css('-o-transform','rotate('+options.rotate+')') .css('transform','rotate('+options.rotate+')'); } // sides have funky stuff $.fn.shadow.sides = function(els,options) { els.addClass('jquery-shadow-sides-'+options.sides); } // border-radius goodness.. $.fn.shadow.borderRadius = function(els,radius) { els.css('-moz-border-radius',radius) .css('border-radius',radius); } // these are the defaults :) $.fn.shadow.defaults = { type:'standard', // AVAILABLE standard, lifted, perspective, raised, sides radius:4, sides:'', // used when type = "sides", AVAILABLE vt-1, vt-2, hz-1, hz-2 rotate:'-3deg' }; })( jQuery );