[Yanel-commits] rev 56223 - public/yanel/trunk/src/webapp/htdocs/yanel-js

michi at wyona.com michi at wyona.com
Fri Jan 21 15:04:49 CET 2011


Author: michi
Date: 2011-01-21 15:04:49 +0100 (Fri, 21 Jan 2011)
New Revision: 56223

Added:
   public/yanel/trunk/src/webapp/htdocs/yanel-js/superfish.js
Log:
superfish added

Added: public/yanel/trunk/src/webapp/htdocs/yanel-js/superfish.js
===================================================================
--- public/yanel/trunk/src/webapp/htdocs/yanel-js/superfish.js	                        (rev 0)
+++ public/yanel/trunk/src/webapp/htdocs/yanel-js/superfish.js	2011-01-21 14:04:49 UTC (rev 56223)
@@ -0,0 +1,120 @@
+/*
+ * Superfish v1.4.8 - jQuery menu widget
+ * Copyright (c) 2008 Joel Birch
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * 	http://www.opensource.org/licenses/mit-license.php
+ * 	http://www.gnu.org/licenses/gpl.html
+ *
+ * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
+ */
+
+;(function($yanelJquery144){
+	$yanelJquery144.fn.superfish = function(op){
+
+		var sf = $yanelJquery144.fn.superfish,
+			c = sf.c,
+			$yanelJquery144arrow = $yanelJquery144(['<span class="',c.arrowClass,'"> »</span>'].join('')),
+			over = function(){
+				var $yanelJquery144$yanelJquery144 = $yanelJquery144(this), menu = getMenu($yanelJquery144$yanelJquery144);
+				clearTimeout(menu.sfTimer);
+				$yanelJquery144$yanelJquery144.showSuperfishUl().siblings().hideSuperfishUl();
+			},
+			out = function(){
+				var $yanelJquery144$yanelJquery144 = $yanelJquery144(this), menu = getMenu($yanelJquery144$yanelJquery144), o = sf.op;
+				clearTimeout(menu.sfTimer);
+				menu.sfTimer=setTimeout(function(){
+					o.retainPath=($yanelJquery144.inArray($yanelJquery144$yanelJquery144[0],o.$yanelJquery144path)>-1);
+					$yanelJquery144$yanelJquery144.hideSuperfishUl();
+					if (o.$yanelJquery144path.length && $yanelJquery144$yanelJquery144.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$yanelJquery144path);}
+				},o.delay);	
+			},
+			getMenu = function($yanelJquery144menu){
+				var menu = $yanelJquery144menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
+				sf.op = sf.o[menu.serial];
+				return menu;
+			},
+			addArrow = function($yanelJquery144a){ $yanelJquery144a.addClass(c.anchorClass).append($yanelJquery144arrow.clone()); };
+			
+		return this.each(function() {
+			var s = this.serial = sf.o.length;
+			var o = $yanelJquery144.extend({},sf.defaults,op);
+			o.$yanelJquery144path = $yanelJquery144('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
+				$yanelJquery144(this).addClass([o.hoverClass,c.bcClass].join(' '))
+					.filter('li:has(ul)').removeClass(o.pathClass);
+			});
+			sf.o[s] = sf.op = o;
+			
+			$yanelJquery144('li:has(ul)',this)[($yanelJquery144.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
+				if (o.autoArrows) addArrow( $yanelJquery144('>a:first-child',this) );
+			})
+			.not('.'+c.bcClass)
+				.hideSuperfishUl();
+			
+			var $yanelJquery144a = $yanelJquery144('a',this);
+			$yanelJquery144a.each(function(i){
+				var $yanelJquery144li = $yanelJquery144a.eq(i).parents('li');
+				$yanelJquery144a.eq(i).focus(function(){over.call($yanelJquery144li);}).blur(function(){out.call($yanelJquery144li);});
+			});
+			o.onInit.call(this);
+			
+		}).each(function() {
+			var menuClasses = [c.menuClass];
+			if (sf.op.dropShadows  && !($yanelJquery144.browser.msie && $yanelJquery144.browser.version < 7)) menuClasses.push(c.shadowClass);
+			$yanelJquery144(this).addClass(menuClasses.join(' '));
+		});
+	};
+
+	var sf = $yanelJquery144.fn.superfish;
+	sf.o = [];
+	sf.op = {};
+	sf.IE7fix = function(){
+		var o = sf.op;
+		if ($yanelJquery144.browser.msie && $yanelJquery144.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
+			this.toggleClass(sf.c.shadowClass+'-off');
+		};
+	sf.c = {
+		bcClass     : 'sf-breadcrumb',
+		menuClass   : 'sf-js-enabled',
+		anchorClass : 'sf-with-ul',
+		arrowClass  : 'sf-sub-indicator',
+		shadowClass : 'sf-shadow'
+	};
+	sf.defaults = {
+		hoverClass	: 'sfHover',
+		pathClass	: 'overideThisToUse',
+		pathLevels	: 1,
+		delay		: 800,
+		animation	: {opacity:'show'},
+		speed		: 'normal',
+		autoArrows	: true,
+		dropShadows : true,
+		disableHI	: false,		// true disables hoverIntent detection
+		onInit		: function(){}, // callback functions
+		onBeforeShow: function(){},
+		onShow		: function(){},
+		onHide		: function(){}
+	};
+	$yanelJquery144.fn.extend({
+		hideSuperfishUl : function(){
+			var o = sf.op,
+				not = (o.retainPath===true) ? o.$yanelJquery144path : '';
+			o.retainPath = false;
+			var $yanelJquery144ul = $yanelJquery144(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
+					.find('>ul').hide().css('visibility','hidden');
+			o.onHide.call($yanelJquery144ul);
+			return this;
+		},
+		showSuperfishUl : function(){
+			var o = sf.op,
+				sh = sf.c.shadowClass+'-off',
+				$yanelJquery144ul = this.addClass(o.hoverClass)
+					.find('>ul:hidden').css('visibility','visible');
+			sf.IE7fix.call($yanelJquery144ul);
+			o.onBeforeShow.call($yanelJquery144ul);
+			$yanelJquery144ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($yanelJquery144ul); o.onShow.call($yanelJquery144ul); });
+			return this;
+		}
+	});
+
+})(jQuery);



More information about the Yanel-commits mailing list