javascript - 如何从顶部显示下拉菜单使用.show()

标签 javascript jquery html css

我使用 cssmenumaker 创建了一个下拉菜单。在桌面和移动 View 上一切正常。但是,在移动 View 中,当我单击下 zipper 接时,它会从左侧显示。但是,我想从顶部显示/向上滑动。我不是 jquery 专家。我正在使用以下代码-

这是实时链接 live link

/*================ Menu ====================*/
(function($) {

    $.fn.menumaker = function(options) {
    var cssmenu = $(this), settings = $.extend({
        title: "Menu",
        format: "dropdown",
        sticky: false
    }, options);

    return this.each(function() {
        cssmenu.prepend('<div id="menu-button">' + settings.title + '</div>');
        $(this).find("#menu-button").on('click', function(){
            $(this).toggleClass('menu-opened');
            var mainmenu = $(this).next('ul');
            if (mainmenu.hasClass('open')) {
                mainmenu.hide().removeClass('open');
            }
            else {
                mainmenu.show("slow").addClass('open');
                if (settings.format === "dropdown") {
                    mainmenu.find('ul').show("slow");
                }
            }
        });

        cssmenu.find('li ul').parent().addClass('has-sub');

        multiTg = function() {
            cssmenu.find(".has-sub").prepend('<span class="submenu-button"></span>');
            cssmenu.find('.submenu-button').on('click', function() {
                $(this).toggleClass('submenu-opened');
                if ($(this).siblings('ul').hasClass('open')) {
                    $(this).siblings('ul').removeClass('open').hide();
                }
                else {
                    $(this).siblings('ul').addClass('open').show("slow");
                }
            });
        };

        if (settings.format === 'multitoggle') multiTg();
        else cssmenu.addClass('dropdown');

        if (settings.sticky === true) cssmenu.css('position', 'fixed');

        resizeFix = function() {
            if ($( window ).width() > 767) {
                cssmenu.find('ul').show("slow");
            }

            if ($(window).width() <= 767) {
                cssmenu.find('ul').hide().removeClass('open');
            }
        };
        resizeFix();
        return $(window).on('resize', resizeFix);

    });
    };
})(jQuery);

(function($){
    $(document).ready(function(){

    $("#cssmenu").menumaker({
        title: "",
        format: "multitoggle"
    });

    });
})(jQuery);

最佳答案

尝试使用 slideDown(); 而不是 show();

关于javascript - 如何从顶部显示下拉菜单使用.show(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34814533/

相关文章:

php - AJAX 调用在 Chrome 中意外运行两次

javascript - 如何在 jQuery 中设置表格中文本输入的值?

javascript - jQuery 选择器适用于 Javascript 代码之后出现的选择器吗?

javascript - 如何避免 JS 代码上的 chrome 自动播放策略?

javascript - 如何获得表格行中单元格的完整位置(顶部和左侧)?

javascript - OSRM WebAPI 参数中的负经度

javascript - 奇怪的 HTML5 Canvas closePath 渲染神器

javascript - AngularJS - 如何在指令渲染完成时查询 DOM

javascript - 当用户尝试离开页面时,有没有办法编写一些 JavaScript 功能?

javascript - 是否可以在不重新加载页面的情况下使用 JavaScript 更改文档类型?