Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

AlphaHot1

By: a guest on Feb 20th, 2009  |  syntax: JavaScript  |  size: 2.15 KB  |  views: 143  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /**
  2.  * @author Remy Sharp
  3.  * @date 2008-03-27
  4.  * @url http://jqueryfordesigners.com/coda-popup-bubbles/
  5.  * @license Creative Commons License - ShareAlike http://creativecommons.org/licenses/by-sa/3.0/
  6.  *
  7.  * See URL for markup examples and screencast
  8.  */
  9.  
  10. (function ($) {
  11.         $.fn.bubble = function (options) {
  12.                 var defaults = {
  13.                         'trigger' : '.trigger',
  14.                         'popup' : '.popup',
  15.                         'distance' : 10,
  16.                         'hideDelay' : 500,
  17.                         'effectTime' : 250
  18.                 };
  19.                
  20.                 var settings = $.extend({}, defaults, options);
  21.                
  22.                 return this.each(function () {
  23.                         var hideDelayTimer = null;
  24.                         var showDelayTimer = null;
  25.  
  26.                         var trigger = $(settings.trigger, this);
  27.                         var popup = $(settings.popup, this);
  28.  
  29.                         $([trigger.get(0), popup.get(0)]).mouseover(function () {
  30.                                 if (hideDelayTimer) clearTimeout(hideDelayTimer);
  31.                                 if (showDelayTimer) clearTimeout(showDelayTimer);
  32.                                
  33.                                 showDelayTimer = setTimeout(function () {
  34.                                         showDelayTimer = null;
  35.                                 if (popup.is(':animated, :visible')) {
  36.                                         return;
  37.                                 } else if ($.browser.msie || $.browser.safari) {
  38.                                         popup.css({
  39.                                                 display: 'block',
  40.                                                 top: -166,
  41.                                                 right: -180
  42.                                         }).animate({
  43.                                                 top: '-=' + settings.distance + 'px'
  44.                                         }, settings.effectTime);                               
  45.                                 } else {
  46.                                         popup.css({
  47.                                                 display: 'block',
  48.                                                 top: -166,
  49.                                                 right: -180
  50.                                         }).animate({
  51.                                                 opacity: 1,
  52.                                                 top: '-=' + settings.distance + 'px'
  53.                                         }, settings.effectTime);                               
  54.                                 }
  55.                         }, settings.hideDelay);
  56.                        
  57.                         }).mouseout(function () {
  58.                                 if (hideDelayTimer) clearTimeout(hideDelayTimer);
  59.                                 if (showDelayTimer) clearTimeout(showDelayTimer);
  60.  
  61.                                 hideDelayTimer = setTimeout(function () {
  62.                                         hideDelayTimer = null;
  63.                                         if ($.browser.msie || $.browser.safari) {
  64.                                         popup.animate({
  65.                                                 top: '-=' + settings.distance + 'px'
  66.                                         }, settings.effectTime, 'swing', function () {
  67.                                                 popup.css('display', 'none');
  68.                                         });     }
  69.                                         else {
  70.                                         popup.animate({
  71.                                                 top: '-=' + settings.distance + 'px',
  72.                                                 opacity: 0
  73.                                         }, settings.effectTime, 'swing', function () {
  74.                                                 popup.css('display', 'none');
  75.                                         });     }
  76.                                 }, settings.hideDelay);
  77.                         });
  78.                 });
  79.         }
  80. })(jQuery);