Collapse DIV only on Mobile View - Bootstrap 3

前端 未结 4 435
甜味超标
甜味超标 2020-12-14 06:56

I have a sidebar search parameters. I want to make collapse function on this DIV only on Mobile device. Using Bootstrap 3 - Latest version.

Here is the HTML Markup.<

相关标签:
4条回答
  • 2020-12-14 07:28

    You could do it this way:

    <button class="visible-xs" data-toggle="collapse" data-target="#SearchParameters">Toggle it</button>
    
    <div class="hidden-xs col-md-3 col-sm-4 SearchParameters" id="SearchParameters">
    ...
    

    CSS:

    #SearchParameters.in,
    #SearchParameters.collapsing {
        display: block!important;
    }
    
    0 讨论(0)
  • 2020-12-14 07:29

    Why not using the window.matchMedia?

    For simplicity I've created an example based on Andrew Dinmore. It doesn't need the extra empty div to check whether something is visible or not.

    <button class="btn btn-default btn-block visible-xs hidden-sm hidden-md hidden-lg" data-toggle="collapse" data-target="#Foo">Toggle</button>
    
    <div id="Foo" class="collapse in">
      <!-- fancy content here -->
    </div>
    
    <script type="text/javascript">
        $(document).ready(function () {
          if (matchMedia) {
            var mq = window.matchMedia("(max-width: 768px)");
            mq.addListener(WidthChange);
            WidthChange(mq);
          }
    
          function WidthChange(mq) {
            if (mq.matches) {
              $("#Foo").removeClass("in");
            }
          }
        });
      </script>
    

    enjoy! ;-)

    0 讨论(0)
  • 2020-12-14 07:51

    Since the "in" class is what defines the collapsible element as open, removing it on mobile causes it to start out collapsed.

    E.g.

    <button data-toggle="collapse" data-target="#collapsible">Show/Hide</button>
    <div class="collapse in" id="collapsible">
        Content Here.
    </div>
    <div class="visible-xs" id="xs-check"></div>
    <script>
    if( $("#xs-check").is(":visible") )
        $("#collapsible").removeClass("in");
    </script>
    
    0 讨论(0)
  • 2020-12-14 07:51

    CSS-only method. Also works on Bootstrap 4.

    @media (min-width: 768px) {
      .collapse.dont-collapse-sm {
        display: block;
        height: auto !important;
        visibility: visible;
      }
    }
    <div class="container">
      
      <button class="btn btn-primary hidden visible-xs" type="button" data-toggle="collapse" data-target="#collapseExample" aria-expanded="false" aria-controls="collapseExample">
        Collapse Button
      </button>
      
      <div class="collapse dont-collapse-sm" id="collapseExample">
        <div class="well">
          Collapse Panel
        </div>
      </div>
    </div>

    source

    0 讨论(0)
提交回复
热议问题