简体   繁体   English

Navbar和THead Fixed-Top

[英]Navbar and THead Fixed-Top

I am creating a simple site that will show a list of computers along with some of their information. 我正在创建一个简单的站点,它将显示计算机列表及其中的一些信息。 So far I've got everything functioning pretty much how I want except I can't get the thead to stay fixed to the navbar while scrolling. 到目前为止,我已经完成了我想要的一切功能,除了我不能让你在滚动时保持固定到导航栏。 I'm still pretty new to all this, but I'll list some of the things I've tried below along with a simplified version of my web page. 我对这一切仍然很陌生,但我将列出我在下面尝试的一些内容以及我的网页的简化版本。

  1. Putting a div around navbar/table through thead: Doesn't scroll 通过thead在navbar / table周围放置div:不滚动
  2. Making the tbody scrollable and fixing the position of navbar/thead: ruined formatting 使tbody可滚动并固定navbar / thead的位置:破坏格式
  3. Applying fixed position just to thead: Also ruins formatting 仅将固定位置应用于thead:还会破坏格式化

Any help is greatly appreciated! 任何帮助是极大的赞赏!

HTML HTML

    <nav class="navbar fixed-top navbar-expand-lg navbar-dark bg-dark">
  <a class="navbar-brand" href="#">Navbar</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
    </ul>
    <form class="form-inline my-2 my-lg-0">
      <input id="myInput" onkeyup="myFunction()" class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
    </form>
  </div>
</nav>
<br><br>
<table id="myTable" class="table table-striped table-hover tablesorter">
  <thead>
    <tr>
      <th scope="col">Status</th>
      <th scope="col">Computer</th>
      <th scope="col">IP Address</th>
      <th scope="col">MAC</th>
    </tr>
  </thead>
  <tbody id="myTableSearch">
    <tr>
      <td><span class="badge badge-success">Online</span></td>
      <td>Computer 1</td>
      <td>192.168.1.21</td>
      <td>92:41:04:FF:15:EB</td>
    </tr>
    <tr>
      <td><span class="badge badge-danger">Offline</span></td>
      <td>Computer 2</td>
      <td>192.168.1.22</td>
      <td>5C:3B:C8:EA:6C:3A</td>
    </tr>
    <tr>
      <td><span class="badge badge-success">Online</span></td>
      <td>Computer 3</td>
      <td>192.168.1.23</td>
      <td>BD:2D:94:8A:63:83</td>
    </tr>
    <tr>
      <td><span class="badge badge-success">Online</span></td>
      <td>Computer 4</td>
      <td>192.168.1.24</td>
      <td>9C:D7:16:1F:0B:A3</td>
    </tr>
    <tr>
      <td><span class="badge badge-danger">Offline</span></td>
      <td>Computer 5</td>
      <td>192.168.1.25</td>
      <td>05:C4:95:A6:B2:E6</td>
    </tr>
     <tr>
      <td><span class="badge badge-success">Online</span></td>
      <td>Computer 1</td>
      <td>192.168.1.21</td>
      <td>92:41:04:FF:15:EB</td>
    </tr>
    <tr>
      <td><span class="badge badge-danger">Offline</span></td>
      <td>Computer 2</td>
      <td>192.168.1.22</td>
      <td>5C:3B:C8:EA:6C:3A</td>
    </tr>
    <tr>
      <td><span class="badge badge-success">Online</span></td>
      <td>Computer 3</td>
      <td>192.168.1.23</td>
      <td>BD:2D:94:8A:63:83</td>
    </tr>
    <tr>
      <td><span class="badge badge-success">Online</span></td>
      <td>Computer 4</td>
      <td>192.168.1.24</td>
      <td>9C:D7:16:1F:0B:A3</td>
    </tr>
    <tr>
      <td><span class="badge badge-danger">Offline</span></td>
      <td>Computer 5</td>
      <td>192.168.1.25</td>
      <td>05:C4:95:A6:B2:E6</td>
    </tr>
     <tr>
      <td><span class="badge badge-success">Online</span></td>
      <td>Computer 1</td>
      <td>192.168.1.21</td>
      <td>92:41:04:FF:15:EB</td>
    </tr>
    <tr>
      <td><span class="badge badge-danger">Offline</span></td>
      <td>Computer 2</td>
      <td>192.168.1.22</td>
      <td>5C:3B:C8:EA:6C:3A</td>
    </tr>
    <tr>
      <td><span class="badge badge-success">Online</span></td>
      <td>Computer 3</td>
      <td>192.168.1.23</td>
      <td>BD:2D:94:8A:63:83</td>
    </tr>
    <tr>
      <td><span class="badge badge-success">Online</span></td>
      <td>Computer 4</td>
      <td>192.168.1.24</td>
      <td>9C:D7:16:1F:0B:A3</td>
    </tr>
    <tr>
      <td><span class="badge badge-danger">Offline</span></td>
      <td>Computer 5</td>
      <td>192.168.1.25</td>
      <td>05:C4:95:A6:B2:E6</td>
    </tr>
     <tr>
      <td><span class="badge badge-success">Online</span></td>
      <td>Computer 1</td>
      <td>192.168.1.21</td>
      <td>92:41:04:FF:15:EB</td>
    </tr>
    <tr>
      <td><span class="badge badge-danger">Offline</span></td>
      <td>Computer 2</td>
      <td>192.168.1.22</td>
      <td>5C:3B:C8:EA:6C:3A</td>
    </tr>
    <tr>
      <td><span class="badge badge-success">Online</span></td>
      <td>Computer 3</td>
      <td>192.168.1.23</td>
      <td>BD:2D:94:8A:63:83</td>
    </tr>
    <tr>
      <td><span class="badge badge-success">Online</span></td>
      <td>Computer 4</td>
      <td>192.168.1.24</td>
      <td>9C:D7:16:1F:0B:A3</td>
    </tr>
    <tr>
      <td><span class="badge badge-danger">Offline</span></td>
      <td>Computer 5</td>
      <td>192.168.1.25</td>
      <td>05:C4:95:A6:B2:E6</td>
    </tr>
  </tbody>
</table>

JS JS

$(function() {
  $("#myTable").tablesorter();
});

    $(document).ready(function(){
      $("#myInput").on("keyup", function() {
        var value = $(this).val().toLowerCase();
        $("#myTableSearch tr").filter(function() {
          $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
        });
      });
});

https://jsfiddle.net/80Lt2d6p/ https://jsfiddle.net/80Lt2d6p/

We can use the answer provided here as a starting point with the following modification: 我们可以使用此处提供的答案作为起点,并进行以下修改:

.table-fixed {
  width: 100%;
}

.table-fixed thead th {
    position: sticky;
    position: -webkit-sticky;
    /*top: 0;*/
    top:55px; /* the height of the fixed nav-bar */
    z-index: 999;
    background-color: #000;
    color: #fff;
}

Now remove the <br> right after the nav-bar in your HTML . 现在,在HTMLnav-bar后面删除<br>

<nav class="navbar fixed-top navbar-expand-lg navbar-dark bg-dark">
  <a class="navbar-brand" href="#">Navbar</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>

  <div class="collapse navbar-collapse" id="navbarSupportedContent">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Link</a>
      </li>
    </ul>
    <form class="form-inline my-2 my-lg-0">
      <input id="myInput" onkeyup="myFunction()" class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
    </form>
  </div>
</nav>
<!-- remove the br from here, we will tackle this with the top:55px -->

Here's an updated JSFiddle: 这是一个更新的JSFiddle:
DEMO DEMO

Maybe this will help you It's a fiddle based on your own. 也许这会帮助你这是一个基于你自己的小提琴。

1st) make the thead fixed with some simple check, just like the following 1)用一些简单的检查固定thead,如下所示

$(window).scroll(function() {
if ($(this).scrollTop() >= 100) { 
    $('#myTable').addClass('fixed');  
} else {
            $('#myTable').removeClass('fixed');
    }
});

2nd) Apply some css 2)申请一些CSS

#myTable.fixed thead { 
  position: fixed; background: #dddddd;
  left: 0; width: 100%;
}

I am not sure about which formatting is ruined, if you are talking about the th then you can style that with some css 我不确定哪种格式被毁了,如果你正在谈论那么你可以用一些css来设计

https://jsfiddle.net/bLjdhc9x/1/ https://jsfiddle.net/bLjdhc9x/1/

 .table-area { position: relative; z-index: 0; margin-top: 60px; } table.rajresponsive-table { display: table; table-layout: fixed; width: 100%; height: 100%; } table.rajresponsive-table thead { position: fixed; top: 50px; left: 0; right: 0; width: 100%; height: 50px; line-height: 3em; table-layout: fixed; display: table; } 
 <link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/> <nav class="navbar fixed-top navbar-expand-lg navbar-dark bg-dark"> <a class="navbar-brand" href="#">Navbar</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarSupportedContent"> <ul class="navbar-nav mr-auto"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item"> <a class="nav-link" href="#">Link</a> </li> </ul> <form class="form-inline my-2 my-lg-0"> <input id="myInput" onkeyup="myFunction()" class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search"> </form> </div> </nav> <br><br> <section class="content-area"> <div class="table-area"> <table class="rajresponsive-table table"> <thead> <tr> <th scope="col">Status</th> <th scope="col">Computer</th> <th scope="col">IP Address</th> <th scope="col">MAC</th> </tr> </thead> <tbody id="myTableSearch"> <tr> <td><span class="badge badge-success">Online</span></td> <td>Computer 1</td> <td>192.168.1.21</td> <td>92:41:04:FF:15:EB</td> </tr> <tr> <td><span class="badge badge-danger">Offline</span></td> <td>Computer 2</td> <td>192.168.1.22</td> <td>5C:3B:C8:EA:6C:3A</td> </tr> <tr> <td><span class="badge badge-success">Online</span></td> <td>Computer 3</td> <td>192.168.1.23</td> <td>BD:2D:94:8A:63:83</td> </tr> <tr> <td><span class="badge badge-success">Online</span></td> <td>Computer 4</td> <td>192.168.1.24</td> <td>9C:D7:16:1F:0B:A3</td> </tr> <tr> <td><span class="badge badge-danger">Offline</span></td> <td>Computer 5</td> <td>192.168.1.25</td> <td>05:C4:95:A6:B2:E6</td> </tr> <tr> <td><span class="badge badge-success">Online</span></td> <td>Computer 1</td> <td>192.168.1.21</td> <td>92:41:04:FF:15:EB</td> </tr> <tr> <td><span class="badge badge-danger">Offline</span></td> <td>Computer 2</td> <td>192.168.1.22</td> <td>5C:3B:C8:EA:6C:3A</td> </tr> <tr> <td><span class="badge badge-success">Online</span></td> <td>Computer 3</td> <td>192.168.1.23</td> <td>BD:2D:94:8A:63:83</td> </tr> <tr> <td><span class="badge badge-success">Online</span></td> <td>Computer 4</td> <td>192.168.1.24</td> <td>9C:D7:16:1F:0B:A3</td> </tr> <tr> <td><span class="badge badge-danger">Offline</span></td> <td>Computer 5</td> <td>192.168.1.25</td> <td>05:C4:95:A6:B2:E6</td> </tr> <tr> <td><span class="badge badge-success">Online</span></td> <td>Computer 1</td> <td>192.168.1.21</td> <td>92:41:04:FF:15:EB</td> </tr> <tr> <td><span class="badge badge-danger">Offline</span></td> <td>Computer 2</td> <td>192.168.1.22</td> <td>5C:3B:C8:EA:6C:3A</td> </tr> <tr> <td><span class="badge badge-success">Online</span></td> <td>Computer 3</td> <td>192.168.1.23</td> <td>BD:2D:94:8A:63:83</td> </tr> <tr> <td><span class="badge badge-success">Online</span></td> <td>Computer 4</td> <td>192.168.1.24</td> <td>9C:D7:16:1F:0B:A3</td> </tr> <tr> <td><span class="badge badge-danger">Offline</span></td> <td>Computer 5</td> <td>192.168.1.25</td> <td>05:C4:95:A6:B2:E6</td> </tr> <tr> <td><span class="badge badge-success">Online</span></td> <td>Computer 1</td> <td>192.168.1.21</td> <td>92:41:04:FF:15:EB</td> </tr> <tr> <td><span class="badge badge-danger">Offline</span></td> <td>Computer 2</td> <td>192.168.1.22</td> <td>5C:3B:C8:EA:6C:3A</td> </tr> <tr> <td><span class="badge badge-success">Online</span></td> <td>Computer 3</td> <td>192.168.1.23</td> <td>BD:2D:94:8A:63:83</td> </tr> <tr> <td><span class="badge badge-success">Online</span></td> <td>Computer 4</td> <td>192.168.1.24</td> <td>9C:D7:16:1F:0B:A3</td> </tr> <tr> <td><span class="badge badge-danger">Offline</span></td> <td>Computer 5</td> <td>192.168.1.25</td> <td>05:C4:95:A6:B2:E6</td> </tr> </tbody> </table> </div> </section> 

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

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