(function($) { $.fn.expando = function(settings) { var expandobj = this; var inital_height; var inital_width; var has_expading_text = false; settings = jQuery.extend({ transitionlength: '500', inital_opacity: .4, end_opacity: .8, expand_height: '140px', onclick_redirect_url: '', show_pointer: false, float: false },settings); this.css('opacity',settings.inital_opacity); $floater = $('
') _initialize(); function _initialize(){ if(expandobj.has("p").length !== 0){ expandobj.find('h1').after(''); expandobj.find('p').after(''); has_expading_text = true; } else { expandobj.find('h1').after('').after(''); } inital_height = expandobj.outerHeight(true); inital_width = expandobj.outerWidth(true); //console.log('height: ' + inital_height); if(settings.onclick_redirect_url != '' || settings.show_pointer != false){ expandobj.css('cursor','pointer'); } expandobj.mouseenter(function(){ if(settings.float == true && has_expading_text == true){ $floater.attr('rel',expandobj.attr('id')); $floater.addClass('floader_holder'); $floater.css('height',inital_height + 'px'); $floater.css('width',inital_width + 'px'); $floater.css('float',expandobj.css('float')); position = expandobj.position(); expandobj.css('top',position.top); expandobj.css('left',position.left); expandobj.css('position','absolute'); expandobj.css('z-index','1000'); //expandobj.css({ top: position.top, left: position.left }); //console.log(position); expandobj.before($floater); } $(this).animate({ opacity: settings.end_opacity }, settings.transitionlength); $(this).find('p').animate({ height: settings.expand_height }, settings.transitionlength); $(this).find('.expand_txt').fadeOut(settings.transitionlength/2); }); expandobj.mouseleave(function(){ $(this).animate({ opacity: settings.inital_opacity }, settings.transitionlength, function(){ if(settings.float == true){ expandobj.css('position','static'); expandobj.css('z-index','0'); $('div[rel="'+expandobj.attr('id')+'"]').remove(); } }); $(this).find('p').animate({ height: '0px' }, settings.transitionlength); $(this).find('.expand_txt').delay(settings.transitionlength * .5).fadeIn(settings.transitionlength * .5); }); if(settings.onclick_redirect_url != ''){ expandobj.click(function (){ window.location = settings.onclick_redirect_url; }); } } }; })(jQuery);