Jquery Superfish菜单-如何向上滑动?
这是superfish菜单插件的jquery代码(经过我的一些修订)。我希望添加一种效果(通过superfish或不确定的方式),使子菜单在鼠标移出时向上滑动(就像在菜单顶部悬停时向下滑动一样)Jquery Superfish菜单-如何向上滑动?,jquery,slide,superfish,Jquery,Slide,Superfish,这是superfish菜单插件的jquery代码(经过我的一些修订)。我希望添加一种效果(通过superfish或不确定的方式),使子菜单在鼠标移出时向上滑动(就像在菜单顶部悬停时向下滑动一样) 你现在不能。直接从代码: hideSuperfishUl : function(){ var o = sf.op, not = (o.retainPath===true) ? o.$path : ''; o.retainPath = false; var $ul = $(['li.'
你现在不能。直接从代码:
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;
}
您可以看到show函数调用animate(),而hide函数只调用hide()。但是,您可以通过破解代码使其正常工作。我会提交一个补丁,但是代码开发不是公开的
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').animate( {opacity: 'hide', height: 'hide'}, o.speed, function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
o.onHide.call($ul);
return this;
},
实现隐藏superfish任务的正确方法与显示相同:
hideSuperfishUl : function(){
var o = sf.op,
not = (o.retainPath===true) ? o.$path : '';
o.retainPath = false;
//hacked code by Farhan Wazir (Seejee)
var $ul_p1 = $(['li.',o.hoverClass].join(''),this).add(this).not(not);
var $ul_p2 = $ul_p1.find('>ul');
var $ul = $ul_p2.animate( {opacity: 'hide', height: 'hide'}, o.speed,
function(){ return $ul_p1.removeClass(o.hoverClass).find('>ul').css({top: '-99999em'}).addClass('sf-hidden');});
o.onHide.call($ul);
return this;
},
我不确定superfish的旧版本,但现在很容易实现(slidedown和slideup)——就像这样
$('...').superfish({
hoverClass: 'sfhover', // the class applied to hovered list items
animation: {height: "show", marginTop: "show", marginBottom: "show", paddingTop: "show", paddingBottom: "show"}, // an object equivalent to first parameter of jQuery’s .animate() method. Used to animate the submenu open
animationOut: {height: "hide", marginTop: "hide", marginBottom: "hide", paddingTop: "hide", paddingBottom: "hide"}, // an object equivalent to first parameter of jQuery’s .animate() method Used to animate the submenu closed
});
$('...').superfish({
hoverClass: 'sfhover', // the class applied to hovered list items
animation: {height: "show", marginTop: "show", marginBottom: "show", paddingTop: "show", paddingBottom: "show"}, // an object equivalent to first parameter of jQuery’s .animate() method. Used to animate the submenu open
animationOut: {height: "hide", marginTop: "hide", marginBottom: "hide", paddingTop: "hide", paddingBottom: "hide"}, // an object equivalent to first parameter of jQuery’s .animate() method Used to animate the submenu closed
});