www.gusucode.com > (自适应手机版)html5响应式影视文化公司源码 传播传媒企业通用类织梦模板(demo223) > (自适应手机版)html5响应式影视文化公司源码 传播传媒企业通用类织梦模板(demo223)/www2/style/js/superfish.js

    /*








 * 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








 *  http://www.yaoyingying.com/css/jquery/superfish/#getting-started  [china]








 *








 * CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt








 */

















;(function($){








	$.fn.superfish = function(op){

















		var sf = $.fn.superfish,








			c = sf.c,








			$arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),








			over = function(){








				var $$ = $(this), menu = getMenu($$);








				clearTimeout(menu.sfTimer);








				$$.showSuperfishUl().siblings().hideSuperfishUl();








			},








			out = function(){








				var $$ = $(this), menu = getMenu($$), o = sf.op;








				clearTimeout(menu.sfTimer);








				menu.sfTimer=setTimeout(function(){








					o.retainPath=($.inArray($$[0],o.$path)>-1);








					$$.hideSuperfishUl();








					if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}








				},o.delay);	








			},








			getMenu = function($menu){








				var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];








				sf.op = sf.o[menu.serial];








				return menu;








			},








			addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };








			








		return this.each(function() {








			var s = this.serial = sf.o.length;








			var o = $.extend({},sf.defaults,op);








			o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){








				$(this).addClass([o.hoverClass,c.bcClass].join(' '))








					.filter('li:has(ul)').removeClass(o.pathClass);








			});








			sf.o[s] = sf.op = o;








			








			$('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {








				if (o.autoArrows) addArrow( $('>a:first-child',this) );








			})








			.not('.'+c.bcClass)








				.hideSuperfishUl();








			








			var $a = $('a',this);








			$a.each(function(i){








				var $li = $a.eq(i).parents('li');








				$a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});








			});








			o.onInit.call(this);








			








		}).each(function() {








			var menuClasses = [c.menuClass];








			if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);








			$(this).addClass(menuClasses.join(' '));








		});








	};

















	var sf = $.fn.superfish;








	sf.o = [];








	sf.op = {};








	sf.IE7fix = function(){








		var o = sf.op;








		if ($.browser.msie && $.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		: 350,








		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(){}








	};








	$.fn.extend({








		hideSuperfishUl : function(){








			var o = sf.op,








				not = (o.retainPath===true) ? o.$path : '';








			o.retainPath = false;








			var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)








					.find('>ul').hide().css('visibility','hidden');








			o.onHide.call($ul);








			return this;








		},








		showSuperfishUl : function(){








			var o = sf.op,








				sh = sf.c.shadowClass+'-off',








				$ul = this.addClass(o.hoverClass)








					.find('>ul:hidden').css('visibility','visible');








			sf.IE7fix.call($ul);








			o.onBeforeShow.call($ul);








			$ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });








			return this;








		}








	});

















})(jQuery);