14

我创建了一些代码来隐藏我的菜单,菜单不完整,但我正在尝试使用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;"

4

5 回答 5

16

您必须删除函数overflow:hidden的回调,slideUp()以便您可以尝试

$("#nav").slideUp('fast', function(){ $('#nav').css('overflow','visible') });

或者你可以通过 css 强制它

#nav{overflow:visible!important}
于 2013-02-01T13:17:24.060 回答
7

这是旧 jquery 中的错误。此代码替换标准函数“slideDown”并删除溢出属性。

!(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);
于 2014-01-30T11:01:47.147 回答
1

覆盖那种风格 -

   $("#nav").slideUp();
   $("#nav").css({'overflow':'visible'});
于 2013-02-01T12:56:52.233 回答
0

通过修改 html 的 style 属性来覆盖默认样式。

else {
       $("#nav").slideUp();
       $("#nav").attr("style","overflow:visible");
    }
于 2013-02-01T12:51:16.263 回答
0

试试这个...

else {
   $("#nav").slideUp();
   $("#nav").css("overflow","visible");
}
于 2013-02-01T12:52:26.950 回答