为<div>创建响应切换按钮

时间:2017-07-12 05:10:50

标签: css twitter-bootstrap grid toggle

我正在尝试为我的网站制作一个响应式过滤器小部件。

  1. #filter-widget 显示屏幕尺寸大于767px时屏幕尺寸小于767px(.col-sm-3)时隐藏。

  2. 显示文件管理器按钮显示屏幕尺寸小于767px。用户点击此按钮后,再次显示#filter-widget

  3. 我的预期结果如下:

    屏幕尺寸大于767px: enter image description here

    屏幕尺寸小于767px: enter image description here

    我的代码如下:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <html>
    <head>
      <title>Eat Your Food</title>
      <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    </head>
    <body>
      <div class="container-fluid">
        <div class="col-xs-12 hidden-sm hidden-md hidden-lg">
          <a href="#filter-widget" class="btn btn-success" data-toggle="collapse">Show Filter v</a>
        </div>
        
        <div id="filter" class="col-sm-3">
          <div id="filter-widget" class="collapse in">
            <form class="form-horizontal">
              <h3><b>Category</b></h3>
              <div class="form-group">
                <div class="checkbox">
                  <label><input type="checkbox" value="vegetable" />Vegetable</label>
                </div>
                <div class="checkbox">
                  <label><input type="checkbox" value="meat" />Meat</label>
                </div>
                <div class="checkbox">
                  <label><input type="checkbox" value="grains" />Grains</label>
                </div>
              </div>
            </form>
          </div>
        </div>
    
        <!-- Result -->
        <div class="col-sm-9">
            <h3>Filted Result Is Here.</h3>
            <p>ResultResultResultResultResult</p>
        </div>
      </div>
    
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    
    </body>
    </html>

    我想在小屏幕中隐藏#filter-widget 作为默认值,因此我将<div id="filter" class="col-sm-3">更改为<div id="filter" class="col-sm-3 hidden-xs">。但是,显示过滤器按钮无法显示#filter-widget

    当屏幕小于767像素时,如何修改我的代码以让显示过滤器隐藏/显示 #filter-widget

    我的代码有问题吗?

    非常感谢!

1 个答案:

答案 0 :(得分:1)

以下是适合您的工作示例。请从代码中删除hidden-

1,CSS

 #filter-widget{display:block}
 .show-filter-button-class{display:none}

 @media screen and (max-width: 767px) {
   #filter-widget{display:none}
   .show-filter-button-class{display:block}

 }

2,JS

<script>
$('body).on('click','.show-filter-button-class',function{
 $('#filter-widget').show();
}
</script>