mirror of
https://github.com/Pathduck/gallery3.git
synced 2026-05-03 11:39:10 -04:00
Merge pull request #221 from shadlaws/superfish_1_5_13
Update to Superfish v1.5.13, with JS minified (in sync with gallery3-vendor)
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
|
||||
/*
|
||||
* Superfish v1.5.1 - jQuery menu widget
|
||||
* Superfish v1.5.13 - jQuery menu widget
|
||||
* Copyright (c) 2013 Joel Birch
|
||||
*
|
||||
* Dual licensed under the MIT and GPL licenses:
|
||||
@@ -8,119 +7,9 @@
|
||||
* http://www.gnu.org/licenses/gpl.html
|
||||
*
|
||||
*/
|
||||
|
||||
;(function($){
|
||||
$.fn.superfish = function(op){
|
||||
|
||||
var sf = $.fn.superfish,
|
||||
c = sf.c,
|
||||
$arrow = $('<span class="'+c.arrowClass+'"> »</span>'),
|
||||
over = function(e){
|
||||
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).length<1){
|
||||
o.onIdle.call(this);
|
||||
over.call(o.$path);
|
||||
}
|
||||
},o.delay);
|
||||
},
|
||||
getMenu = function($child){
|
||||
if ($child.hasClass(c.menuClass)){
|
||||
$.error('Superfish requires you to update to a version of hoverIntent that supports event-delegation, such as this one: https://github.com/joeldbirch/onHoverIntent');
|
||||
}
|
||||
var menu = $child.closest('.'+c.menuClass)[0];
|
||||
sf.op = sf.o[menu.serial];
|
||||
return menu;
|
||||
},
|
||||
applyHandlers = function($menu){
|
||||
var targets = 'li:has(ul)';
|
||||
if ($.fn.hoverIntent && !sf.op.disableHI){
|
||||
$menu.hoverIntent(over, out, targets);
|
||||
} else {
|
||||
$menu.on('mouseenter', targets, over);
|
||||
$menu.on('mouseleave', targets, out);
|
||||
}
|
||||
$menu.on('focusin', targets, over);
|
||||
$menu.on('focusout', targets, out);
|
||||
},
|
||||
addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
|
||||
|
||||
return this.addClass(c.menuClass).each(function() {
|
||||
var s = this.serial = sf.o.length;
|
||||
var o = $.extend({},sf.defaults,op);
|
||||
var $$ = $(this);
|
||||
o.$path = $$.find('li.'+o.pathClass).slice(0,o.pathLevels).each(function(){
|
||||
$(this).addClass(o.hoverClass+' '+c.bcClass)
|
||||
.filter('li:has(ul)').removeClass(o.pathClass);
|
||||
});
|
||||
sf.o[s] = sf.op = o;
|
||||
|
||||
applyHandlers($$);
|
||||
|
||||
$$.find('li:has(ul)').each(function() {
|
||||
if (o.autoArrows) {
|
||||
addArrow( $('>a:first-child',this) );
|
||||
}
|
||||
})
|
||||
.not('.'+c.bcClass)
|
||||
.hideSuperfishUl();
|
||||
|
||||
o.onInit.call(this);
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
var sf = $.fn.superfish;
|
||||
sf.o = [];
|
||||
sf.op = {};
|
||||
|
||||
sf.c = {
|
||||
bcClass : 'sf-breadcrumb',
|
||||
menuClass : 'sf-js-enabled',
|
||||
anchorClass : 'sf-with-ul',
|
||||
arrowClass : 'sf-sub-indicator'
|
||||
};
|
||||
sf.defaults = {
|
||||
hoverClass : 'sfHover',
|
||||
pathClass : 'overideThisToUse',
|
||||
pathLevels : 1,
|
||||
delay : 800,
|
||||
animation : {opacity:'show'},
|
||||
speed : 'normal',
|
||||
autoArrows : true,
|
||||
disableHI : false, // true disables hoverIntent detection
|
||||
onInit : function(){}, // callback functions
|
||||
onBeforeShow: function(){},
|
||||
onShow : function(){},
|
||||
onHide : function(){},
|
||||
onIdle : function(){}
|
||||
};
|
||||
$.fn.extend({
|
||||
hideSuperfishUl : function(){
|
||||
var o = sf.op,
|
||||
not = (o.retainPath===true) ? o.$path : '';
|
||||
o.retainPath = false;
|
||||
var $ul = $('li.'+o.hoverClass,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,
|
||||
$ul = this.addClass(o.hoverClass)
|
||||
.find('>ul:hidden').css('visibility','visible');
|
||||
o.onBeforeShow.call($ul);
|
||||
$ul.animate(o.animation,o.speed,function(){ o.onShow.call($ul); });
|
||||
return this;
|
||||
}
|
||||
});
|
||||
|
||||
})(jQuery);
|
||||
(function(b){b.fn.superfish=function(d){var g=b.fn.superfish,a=g.c,f=b('<span class="'+a.arrowClass+'"> »</span>'),k=function(){var e=b(this),c=j(e);clearTimeout(c.sfTimer);e.showSuperfishUl().siblings().hideSuperfishUl()},l=function(e){var c=b(this),d=j(c),a=g.op,f=function(){a.retainPath=-1<b.inArray(c[0],a.$path);c.hideSuperfishUl();a.$path.length&&1>c.parents("li."+a.hoverClass).length&&(a.onIdle.call(),b.proxy(k,a.$path,e)())};"click"===e.type?f():(clearTimeout(d.sfTimer),d.sfTimer=setTimeout(f,
|
||||
a.delay))},j=function(e){e.hasClass(a.menuClass)&&b.error("Superfish requires you to update to a version of hoverIntent that supports event-delegation, such as this one: https://github.com/joeldbirch/onHoverIntent");e=e.closest("."+a.menuClass)[0];g.op=g.o[e.serial];return e},m=function(e){var c=b(this),a=c.siblings("ul");if(0<a.length&&!a.is(":visible")&&(c.data("follow",!1),"MSPointerDown"===e.type))return c.trigger("focus"),!1},n=function(a){var c=b(this),d=c.siblings("ul"),f=!1===c.data("follow")?
|
||||
!1:!0;if(d.length&&(g.op.useClick||!f))a.preventDefault(),d.is(":visible")?g.op.useClick&&f&&b.proxy(l,c.parent("li"),a)():b.proxy(k,c.parent("li"))()};return this.addClass(a.menuClass).each(function(){var e=this.serial=g.o.length,c=b.extend({},g.defaults,d),h=b(this),j=h.find("li:has(ul)");c.$path=h.find("li."+c.pathClass).slice(0,c.pathLevels).each(function(){b(this).addClass(c.hoverClass+" "+a.bcClass).filter("li:has(ul)").removeClass(c.pathClass)});g.o[e]=g.op=c;c.autoArrows&&j.children("a").each(function(){b(this).addClass(a.anchorClass).append(f.clone())});
|
||||
h.css("ms-touch-action","none");if(!g.op.useClick)if(b.fn.hoverIntent&&!g.op.disableHI)h.hoverIntent(k,l,"li:has(ul)");else h.on("mouseenter","li:has(ul)",k).on("mouseleave","li:has(ul)",l);e="MSPointerDown";navigator.userAgent.toLowerCase().match(/(iphone|ipod|ipad)/)||(e+=" touchstart");h.on("focusin","li",k).on("focusout","li",l).on("click","a",n).on(e,"a",m);j.not("."+a.bcClass).children("ul").show().hide();c.onInit.call(this)})};var f=b.fn.superfish;f.o=[];f.op={};f.c={bcClass:"sf-breadcrumb",
|
||||
menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",arrowClass:"sf-sub-indicator"};f.defaults={hoverClass:"sfHover",pathClass:"overideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},animationOut:{opacity:"hide"},speed:"normal",speedOut:"fast",autoArrows:!0,disableHI:!1,useClick:!1,onInit:function(){},onBeforeShow:function(){},onShow:function(){},onHide:function(){},onIdle:function(){}};b.fn.extend({hideSuperfishUl:function(){var d=f.op,g=this,a=!0===d.retainPath?d.$path:"";d.retainPath=
|
||||
!1;b("li."+d.hoverClass,this).add(this).not(a).children("ul").stop(!0,!0).animate(d.animationOut,d.speedOut,function(){$ul=b(this);$ul.parent().removeClass(d.hoverClass);d.onHide.call($ul);f.op.useClick&&g.children("a").data("follow",!1)});return this},showSuperfishUl:function(){var d=f.op,b=this,a=this.children("ul");b.addClass(d.hoverClass);d.onBeforeShow.call(a);a.stop(!0,!0).animate(d.animation,d.speed,function(){d.onShow.call(a);b.children("a").data("follow",!0)});return this}})})(jQuery);
|
||||
|
||||
Reference in New Issue
Block a user