简体   繁体   English

更换 <li> 如果容器宽度已满,则使用更多下拉菜单

[英]Replace <li> with More drop Down menu if container width full

I Had used Bootstrap here, so it's responsive and cool. 我在这里使用过Bootstrap,所以它反应灵敏,很酷。

But i want to load menu in single line, like. 但我想在单行中加载菜单,比如。 在此输入图像描述

I have menu between logo and search bar. 我在徽标和搜索栏之间有菜单。 it will fine if there is static menu but here menu will add dynamically. 如果有静态菜单会很好但这里的菜单会动态添加。

so it's possible if there is more menu (more then container width) it will automatically move to "More" drop down menu. 因此,如果有更多菜单(超过容器宽度),它将自动移动到“更多”下拉菜单。

I have to check width from js, because there is possibility the browser width will different. 我必须从js检查宽度,因为浏览器宽度可能会有所不同。

here i have do some stuff. 我在这里做了一些事。 HTML code, HTML代码,

<header id="header">
    <div class="container">
        <nav id="navMain">
            <div class="navbar-header">
                <button type="button" class="navbar-btn">
                    <i class="fa fa-navicon"></i>
                </button>
                <a class="logo" href="/"><img src="#" alt=""></a>
            </div>
            <div class="search">
                <form action="/shop" method="get">
                    <div class="icon">
                        <i class="fa fa-search"></i>
                    </div>
                    <div class="search-view">
                        <input type="text" placeholder="search" name="search">
                        <input type="submit" value="">
                    </div>
                </form>
            </div>
            <div class="menu-bar">
                <ul>
                    <li class="active"><a href="/">Home <i class="fa fa-angle-down"></i></a></li>
                    <li class="{}">
                        <a href="/shop/3">Play Surface </a>
                    </li>
                    <li class="{}">
                        <a href="/shop/18">Test with big text  </a>
                    </li>
                    <li class="{}">
                        <a href="/shop/19">Demo Components </a>
                    </li>
                    <li class="{}">
                        <a href="/shop/5">Sports Equipment </a>
                    </li>
                    <li class="{}">
                        <a href="/shop/4">Site Amenities </a>
                    </li>
                    <li class="sub-nav more_list">
                        <a href="#">More <i class="fa fa-angle-down"></i></a><span class="arrow"><i class="fa fa-angle-down"></i></span><span class="arrow"><i class="fa fa-angle-down"></i></span>
                        <div class="sub-menu">
                            <div class="left-nav">
                                <ul>
                                    // I Have to add HERE
                                </ul>
                            </div>
                        </div>
                    </li>
                </ul>
            </div>
        </nav>
    </div>
</header>

JS : JS:

var containerWidth = parseFloat($('#header > .container').width());
var logoWidth = parseFloat($('#header > .container > #navMain > .navbar-header').width());
var menuWidth = parseFloat($('#header > .container > #navMain > .menu-bar').width());
var searchWidth = parseFloat($('#header > .container > #navMain > .search').width());

var MoreHtml = $('#header > .container > #navMain > .menu-bar > ul > li.more_list');
if ((logoWidth + searchWidth + menuWidth) > containerWidth) {
    console.log("add more menu");
}

How to cut from menu's <li> and paste into More menu's <ul> . 如何从菜单的<li>切割并粘贴到更多菜单的<ul>

You could also accomplish this by simply using hidden-* and visible-* class names. 您也可以通过使用hidden-*visible-*类名来实现此visible-*

<ul>
  <li><a href="#">Home</a></li>
  <li><a href="#">Item 2</a></li>
  ...
  <li class="hidden-xs"><a href="#">Item 5</a></li>
  <li><a href="#" data-toggle="dropdown">More <span class="caret"></span></a>
    <ul>
       <li class="visible-xs><a href="#">Item 5</a></li>
       ...
    </ul>
  </li>
</ul>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM