我已经用Superfish navbar实现了导航,如下例所示:
http://users.tpg.com.au/j_birch/plugins/superfish/examples/nav-bar/

我只需要第一级,如下面的jsfiddle所示:http://jsfiddle.net/v1c09us9/

现在的问题是,如果子菜单中有10个项目,则菜单项目开始向下移动。我希望菜单项保持一行,并使用小箭头向右移动。
我设法通过使它们的父级ul溢出x可滚动使菜单项水平显示。

.sf-navbar li ul{
    white-space: nowrap;
    width: 100%;
    overflow-x: scroll;

}

.sf-navbar > li > ul > li {
    display: inline-block;

}


jsfiddle正在显示此实现。问题在于,现在它有一个滚动条,我想隐藏它,但找不到解决方法。另外,它打破了我用来使菜单响应的hack,我在此线程中找到了第三个答案How to make superfish dropdown menu responsive?

我想知道是否有什么方法可以隐藏滚动条并添加箭头来滚动项目,以使其保持响应状态。还是有更好的替代超级鱼?我进行了很多搜索,但是找不到具有相同功能的好选择,即菜单显示为一行而不是下拉菜单。

谢谢

最佳答案

好的,所以我已经尝试了一次。基本上,我隐藏了滚动条,使其位于导航内部,并使用了一些JQuery来使鼠标悬停滚动导航中的项目,并且仍然保持响应状态。您可能需要修改才能使其完全符合您的需求。

JSFiddle

的CSS

.sf-navbar > li > ul {
/* removed min width that was here */
overflow:hidden;
}

/*altered*/
.sf-navbar li ul{
    width: 100%;
    overflow-x: hidden;

}

.sf-navbar > li > ul > li {
    display: inline-block;
}

/*added*/

.sf-navbar li ul:hover { overflow-x:hidden }


JS

$.fn.scrollList = function (delay) {
    delay = delay || 2000;
    var animateList = function ($list) {
        //get first child
        var $first = $list.children('li:first');
        var width = $first.outerWidth(true);
        //animate first two off the screen
        $first.animate({
            'margin-left': $list.width() * -1
        },
        // on animation complete
        function () {
            //reset and move to the end of the list
            $(this).css('margin-left', 0).add($(this).next()).appendTo($list);
            //start again after delay
            setTimeout(function () {
                animateList($list)
            }, delay);
        });
    };

    return this.each(function () {
        var $that = $(this)
        setTimeout(function () {
            animateList($that);
        }, delay);
    });

};

$('.sf-menu ul').scrollList();

关于javascript - 响应式Superfish导航栏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26886976/

10-12 15:11