summaryrefslogtreecommitdiff
path: root/lib/superfish
diff options
context:
space:
mode:
authorBharat Mediratta <bharat@menalto.com>2013-02-03 18:48:30 -0500
committerBharat Mediratta <bharat@menalto.com>2013-02-03 18:55:23 -0500
commit0494244e8068198707bf602199413cd216b0d515 (patch)
tree59d31d59047c85c13a8061165a453f86aa501510 /lib/superfish
parentdece6dc5a5880c6267431ba3299c5758b38662ee (diff)
Super first pass:
- jQuery 1.90 - jQuery UI 1.10 - Superfish 1.5.1 (minus all plugins) - jQuery Form 3.26.0-2013.01.28 Deleted all other jQuery plugins for now. - Reworked autocomplete to use the latest jQuery code. - Deleted references to $.browser.msie, no longer supported - Basic CSS support for autocomplete - lots more work needed there
Diffstat (limited to 'lib/superfish')
-rw-r--r--lib/superfish/css/superfish.css16
-rw-r--r--lib/superfish/images/arrows-ffffff-rtl.pngbin378 -> 0 bytes
-rw-r--r--lib/superfish/images/shadow.pngbin1698 -> 0 bytes
-rw-r--r--lib/superfish/js/superfish.js75
4 files changed, 43 insertions, 48 deletions
diff --git a/lib/superfish/css/superfish.css b/lib/superfish/css/superfish.css
index cc33fdb4..3b21323e 100644
--- a/lib/superfish/css/superfish.css
+++ b/lib/superfish/css/superfish.css
@@ -57,6 +57,9 @@ ul.sf-menu li li li.sfHover ul {
float: left;
margin-bottom: 1em;
}
+.sf-menu ul {
+ box-shadow: 2px 2px 6px rgba(0,0,0,.2);
+}
.sf-menu a {
border-left: 1px solid #fff;
border-top: 1px solid #CFDEFF;
@@ -121,16 +124,3 @@ li.sfHover > a > .sf-sub-indicator {
.sf-menu ul li.sfHover > a > .sf-sub-indicator {
background-position: -10px 0; /* arrow hovers for modern browsers*/
}
-
-/*** shadows for all but IE6 ***/
-.sf-shadow ul {
- background: url('../images/shadow.png') no-repeat bottom right;
- padding: 0 8px 9px 0;
- -moz-border-radius-bottomleft: 17px;
- -moz-border-radius-topright: 17px;
- -webkit-border-top-right-radius: 17px;
- -webkit-border-bottom-left-radius: 17px;
-}
-.sf-shadow ul.sf-shadow-off {
- background: transparent;
-}
diff --git a/lib/superfish/images/arrows-ffffff-rtl.png b/lib/superfish/images/arrows-ffffff-rtl.png
deleted file mode 100644
index 2fe14a36..00000000
--- a/lib/superfish/images/arrows-ffffff-rtl.png
+++ /dev/null
Binary files differ
diff --git a/lib/superfish/images/shadow.png b/lib/superfish/images/shadow.png
deleted file mode 100644
index c04d21b7..00000000
--- a/lib/superfish/images/shadow.png
+++ /dev/null
Binary files differ
diff --git a/lib/superfish/js/superfish.js b/lib/superfish/js/superfish.js
index c6a9c7de..45d2e9a6 100644
--- a/lib/superfish/js/superfish.js
+++ b/lib/superfish/js/superfish.js
@@ -1,13 +1,12 @@
/*
- * Superfish v1.4.8 - jQuery menu widget
- * Copyright (c) 2008 Joel Birch
+ * Superfish v1.5.1 - jQuery menu widget
+ * Copyright (c) 2013 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($){
@@ -15,8 +14,8 @@
var sf = $.fn.superfish,
c = sf.c,
- $arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
- over = function(){
+ $arrow = $('<span class="'+c.arrowClass+'"> &#187;</span>'),
+ over = function(e){
var $$ = $(this), menu = getMenu($$);
clearTimeout(menu.sfTimer);
$$.showSuperfishUl().siblings().hideSuperfishUl();
@@ -27,59 +26,67 @@
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);}
+ if (o.$path.length && $$.parents('li.'+o.hoverClass).length<1){
+ o.onIdle.call(this);
+ over.call(o.$path);
+ }
},o.delay);
},
- getMenu = function($menu){
- var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
+ 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.each(function() {
+ return this.addClass(c.menuClass).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(' '))
+ 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;
- $('li:has(ul)',this)[($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'](over,out).each(function() {
- if (o.autoArrows) addArrow( $('>a:first-child',this) );
+ applyHandlers($$);
+
+ $$.find('li:has(ul)').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'
+ arrowClass : 'sf-sub-indicator'
};
sf.defaults = {
hoverClass : 'sfHover',
@@ -89,31 +96,29 @@
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(){}
+ 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].join(''),this).add(this).not(not).removeClass(o.hoverClass)
+ 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,
- 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); });
+ $ul.animate(o.animation,o.speed,function(){ o.onShow.call($ul); });
return this;
}
});