Team:Penn/js/atooltip.jquery.js

From 2012.igem.org

Revision as of 12:25, 17 August 2012 by Amurthur (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

/* jQuery Version: jQuery 1.3.2 Plugin Name: aToolTip V 1.0 Plugin by: Ara Abcarians: http://ara-abcarians.com License: aToolTip is licensed under a Creative Commons Attribution 3.0 Unported License Read more about this license at --> http://creativecommons.org/licenses/by/3.0/

  • /

(function($) {

   $.fn.aToolTip = function(options) {
   
   	// setup default settings
   	var defaults = {
   		clickIt: false,
   		closeTipBtn: 'aToolTipCloseBtn',
   		fixed: false,
   		inSpeed: 200,
   		outSpeed: 0,
   		tipContent: ,
   		toolTipClass: 'aToolTip',
   		xOffset: 5,
   		yOffset: 5
   	},
   
   	// This makes it so the users custom options overrides the default ones
   	settings = $.extend({}, defaults, options);
   

return this.each(function() { var obj = $(this); // Decide weather to use a title attr as the tooltip content if(obj.attr('title')){ // set the tooltip content/text to be the obj title attribute var tipContent = obj.attr('title'); } else { // if no title attribute set it to the tipContent option in settings var tipContent = settings.tipContent; }

// check if obj has a title attribute and if click feature is off if(tipContent && !settings.clickIt){ // Activate on hover obj.hover(function(el){ obj.attr({title: });

$('body').append("

"+ tipContent +"

");

$('.' + settings.toolTipClass).css({ position: 'absolute', display: 'none', zIndex: '50000', top: (obj.offset().top - $('.' + settings.toolTipClass).outerHeight() - settings.yOffset) + 'px', left: (obj.offset().left + 1/2*(obj.outerWidth()) + settings.xOffset) + 'px' }) .stop().fadeIn(settings.inSpeed); }, function(){ // Fade out $('.' + settings.toolTipClass).stop().fadeOut(settings.outSpeed, function(){$(this).remove();}); }); }

// Follow mouse if fixed is false and click is false if(!settings.fixed && !settings.clickIt){ obj.mousemove(function(el){ $('.' + settings.toolTipClass).css({ top: (el.pageY - $('.' + settings.toolTipClass).outerHeight() - settings.yOffset), left: (el.pageX + settings.xOffset) }) }); }

// check if click feature is enabled if(tipContent && settings.clickIt){ // Activate on click obj.click(function(el){ obj.attr({title: });

$('body').append("

"+ tipContent +"

");

$('.' + settings.toolTipClass).append("<a class='"+ settings.closeTipBtn +"' href='#' alt='close'>close</a>"); $('.' + settings.toolTipClass).css({ position: 'absolute', display: 'none', zIndex: '50000', top: (obj.offset().top - $('.' + settings.toolTipClass).outerHeight() - settings.yOffset) + 'px', left: (obj.offset().left + obj.outerWidth() + settings.xOffset) + 'px' }) .fadeIn(settings.inSpeed); // Click to close tooltip $('.' + settings.closeTipBtn).click(function(){ $('.' + settings.toolTipClass).fadeOut(settings.outSpeed, function(){$(this).remove();}); return false; }); return false; }); }

}); // END: return this

// returns the jQuery object to allow for chainability.

       return this;
   };

})(jQuery);

$(document).ready(function() { // tool tip $('.normaltip').aToolTip({

   	toolTipClass: 'aToolTip'});

})