我已经创建了一些代码来隐藏我的菜单,菜单不完整但是我正在尝试使用jQuery.slideUp()
函数但它会在代码中添加style="overflow: hidden;"
所以当我使用.show时隐藏了我的元素#nav:after
和#nav:before
,它在菜单底部添加了一个小箭头
这里是js代码
$("span#start_button").click(function () {
if ($("#nav").is(":hidden")) {
$("#nav").show("fast");
} else {
$("#nav").slideUp();
}
});
的结果
如何阻止.slideUp()
创建style="overflow: hidden;"
?
答案 0 :(得分:13)
您必须删除overflow:hidden
功能回调中的slideUp()
所以你可以尝试
$("#nav").slideUp('fast', function(){ $('#nav').css('overflow','visible') });
或者你可以通过css强制它
#nav{overflow:visible!important}
答案 1 :(得分:7)
在较旧的jquery中,这是bug。 此代码替换标准函数“slideDown”并删除overflow属性。
!(function (jQuery, origSlideDown) {
jQuery.fn.slideDown = function (speed, easing, callback) {
var self = this;
var args = Array.prototype.slice.call(arguments);
var origCallback;
for (var i = 0, len = args.length; i < len; i++) {
if (jQuery.isFunction(args[i])) {
origCallback = args[i];
args[i] = function () {
origCallback.call(this);
self.css('overflow', '');
}
}
}
if (!origCallback) {
args.push(function () {
self.css('overflow', '');
});
}
return origSlideDown.apply(this, args);
};
})(jQuery, jQuery.fn.slideDown);
答案 2 :(得分:2)
覆盖该样式 -
$("#nav").slideUp();
$("#nav").css({'overflow':'visible'});
答案 3 :(得分:0)
通过修改html的style属性来覆盖默认样式。
else {
$("#nav").slideUp();
$("#nav").attr("style","overflow:visible");
}
答案 4 :(得分:0)
试试这个......
else {
$("#nav").slideUp();
$("#nav").css("overflow","visible");
}