在其他元素上进行输入显示

Making input display over other elements

本文关键字:输入 显示 其他 元素      更新时间:2023-09-26

我目前正在使用Bootstrap创建一个网站,问题是在响应式小显示菜单上,我想使搜索输入显示在其他事情上,但我没有这样做。我正在使用jQuery。

预期的用途是,当按下搜索图标按钮,它显示隐藏的输入在其他元素的全尺寸可用,再次点击按钮,使其消失,但我不能想出一个办法,如果不给100%的宽度的形式,但它崩溃的布局。我在链接一个例子来启发它。此外,这些按钮和表单只在小分辨率下可见。

HTML

    <nav class="navbar navbar-default">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <a class="navbar-brand" href="#">TEST SITE</a>
      <form id="form-search" class="navbar-form navbar-collapse visible-xs pull-right" role="search">
    <div class="input-group">
      <input type="text" class="form-control" placeholder="Buscar">
      <span class="input-group-btn">
          <button class="btn btn-default" type="button"><span class="glyphicon glyphicon-search"</span></button>
      </span>
    </div>
      </form>
      <button id="colapsador" type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <button id="navi-btn" type="button" class="visible-xs btn btn-default pull-right">
            <span class="glyphicon glyphicon-map-marker"></span>
        </button>
    </div>
    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
    <div>
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">One more separated link</a></li>
          </ul>
        </li>
      </ul>
      </div>
      <div>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>
        </li>
      </ul>
      </div>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>
<div class="container">
    <div class="row">
        <div class="col-lg-12">
            <h1>Some site</h1>
            <p>Some text</p>
        </div>
    </div>
</div>
Javascript

$('#form-search button').click(function(){
        $(this).css({
            'border-top-left-radius':'0',
            'border-bottom-left-radius':'0'
        }).addClass('active');
        $('#form-search').css('width','100%');
        $('#form-search .form-control').css({
            'display':'inherit',
            'width':'100%',
        });
    });
CSS

#form-search{
border: none;
margin-top: -2px;
margin-right: -0.5em;
width:4.8em;
z-index: 6;
}
#form-search .form-control{
    display:none;
    z-index: 100;
}
#form-search .input-group-btn button{
    border-top-left-radius:4px;
    border-bottom-left-radius: 4px;
}
#navi-btn{
    margin-top: 8px;
    margin-right: 0.5em;
    z-index: 1;
}
#colapsador{
    margin-right: 0.5em;
    z-index: 1;
}

z-index属性似乎不工作,也如果有人能启发我如何恢复原来的css属性时再次点击按钮会很好,但这不是我的主要问题,我可以搜索它。

http://jsfiddle.net/8vv0dgLc/

更新小提琴

我不确定,但尝试将width从100%更改为50%:

$('#form-search').css('width','50%');

我想这就解决了问题,希望能有所帮助。

z-index属性似乎不起作用

对于z-index,需要在

上的每个元素上设置position:absolute

我终于做到了,只是小细节,动画仍然缺失,但这是完美的:)

检查更新的小提琴

http://jsfiddle.net/8vv0dgLc/2/

HTML代码:

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <div class="navbar-header">
      <a class="navbar-brand" href="#">TEST SITE</a>
      <form id="form-search" class="navbar-form navbar-collapse visible-xs pull-right" role="search">
    <div class="input-group">
      <input type="text" class="form-control" placeholder="Buscar">
      <span class="input-group-btn">
          <button class="btn btn-default" type="button"><span class="glyphicon glyphicon-search"</span></button>
      </span>
    </div>
      </form>
      <button id="colapsador" type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <button id="navi-btn" type="button" class="visible-xs btn btn-default pull-right">
            <span class="glyphicon glyphicon-map-marker"></span>
        </button>
    </div>
    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
    <div>
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">One more separated link</a></li>
          </ul>
        </li>
      </ul>
      </div>
      <div>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>
        </li>
      </ul>
      </div>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>
    <!-- Page Content -->
    <div class="container">
        <div class="row">
            <div class="col-lg-12">
                <h1>Some site</h1>
                <p>Some text</p>
            </div>
        </div>
    </div>
Javascript

$('#form-search button').click(function(){
            $('#form-search .form-control').toggle();
        });
CSS

#form-search{
    border: none;
    margin-top: -2px;
    margin-right: -0.5em;
    width:4.8em;
    z-index: 6;
}
#form-search .form-control{
    position:absolute;
    display:none;
    z-index: 100;
    right:3em;
    width:15em;
}
#form-search .input-group-btn button{
    border-top-left-radius:4px;
    border-bottom-left-radius: 4px;
}
#navi-btn{
    margin-top: 8px;
    margin-right: 0.5em;
    z-index: 1;
}
#colapsador{
    margin-right: 0.5em;
    z-index: 1;
}