【问题标题】:Database Jquery - Column Headers Misalign when using ScrollY数据库 Jquery - 使用 ScrollY 时列标题未对齐
【发布时间】:2017-12-07 00:40:48
【问题描述】:

我正在使用 jQuery 的 DataTables 和 Bootstrap。所以我遇到的问题是,当我在“已完成”和“死”选项卡之间切换时,“死”选项卡的列标题会在左侧聚集在一起,直到我单击它们然后它们正确对齐。每当我刷新时都会发生这种情况。我尝试将 CSS 与 overflow:auto 一起使用,但这会使我的整个面板可滚动,这是我不想要的。我希望在滚动表格时标题保持固定。

  <div class = 'row'>
  <div class='col-lg-11'>

  <div id="pane3" > 
  <ul class="nav nav-tabs">
    <li class="active">
      <a  href="#4a" data-toggle="tab">My Completed</a>
    </li>
    <li>
      <a  href="#4b" id="deadTab"  data-toggle="tab">Dead Requests</a>
    </li>

  </ul>
  <div class="tab-content">
      <div class='tab-pane active' id ="4a">
        <!-- <div id="" style=" width: 100%; position:relative; height:200px;"> -->
          <table id='completed' class="table table-striped table-hover">
          <thead>
            <tr>
              <th>Req. #</th>
              <th>Project #</th>
              <th>Client Name</th>
              <th>Program</th>
              <th>Request Type</th>
              <th>Assignee</th>
              <th>Completed Date</th>
              <th>Clone</th>

            </tr>
          </thead>
          <tbody>
            <tr>
              <td>July</td>
              <td>Dooley</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>july@example.com</td>
              <td>6/12/2017</td>
              <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
            </tr>
            <tr>
              <td>July</td>
              <td>Dooley</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>july@example.com</td>
              <td>6/12/2017</td>
              <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
            </tr>
            <tr>
              <td>July</td>
              <td>Dooley</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>july@example.com</td>
              <td>6/12/2017</td>
              <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
            </tr>
            <tr>
              <td>July</td>
              <td>Dooley</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>july@example.com</td>
              <td>6/12/2017</td>
              <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
            </tr>
            <tr>
              <td>July</td>
              <td>Dooley</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>july@example.com</td>
              <td>6/12/2017</td>
              <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
            </tr>
            <tr>
              <td>July</td>
              <td>Dooley</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>july@example.com</td>
              <td>6/12/2017</td>
              <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
            </tr>
          </tbody>
        </table>
      <!--   </div> -->
        </div>
          <div class='tab-pane' id ="4b">
         <!--  <div id="" style=" overflow:auto; position:relative; "> -->
            <table id='dead' class="table table-striped table-hover">
            <thead>
              <tr>
                <th>Req. #</th>
                <th>Project #</th>
                <th>Client Name</th>
                <th>Program</th>
                <th>Request Type</th>
                <th>Assignee</th>
                <th>Dead Date</th>
                <th>Restart</th>
              </tr>
            </thead>
            <tbody>
            <tr>
              <td>July</td>
              <td>Dooley</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>july@example.com</td>
              <td>6/12/2017</td>
              <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
            </tr>
            <tr>
              <td>July</td>
              <td>Dooley</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>july@example.com</td>
              <td>6/12/2017</td>
              <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
            </tr>
            <tr>
              <td>July</td>
              <td>Dooley</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>july@example.com</td>
              <td>6/12/2017</td>
              <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
            </tr>
            <tr>
              <td>July</td>
              <td>Dooley</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>july@example.com</td>
              <td>6/12/2017</td>
              <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
            </tr>
            <tr>
              <td>July</td>
              <td>Dooley</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>july@example.com</td>
              <td>6/12/2017</td>
              <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
            </tr>
            <tr>
              <td>July</td>
              <td>Dooley</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>john@e</td>
              <td>july@example.com</td>
              <td>6/12/2017</td>
              <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
            </tr>
          </tbody>
          </table>
         <!--  </div> -->
          </div>
        </div>
      </div>
    </div>
  </div>
</div>

<script>

$(document).ready(function() {



   $('#completed').DataTable( {
    "paging":false,
    // "fixedHeader": true,
    "scrollY": "140px",
    "table-layout":"fixed",
    "columnDefs":[
    {"width":60, "targets":0},
    {"width":60, "targets":1},
    {"width":60, "targets":2},
    {"width":60, "targets":3},
    {"width":90, "targets":4},
    {"width":90, "targets":5},
    {"width":90, "targets":6},
    {"width":90, "targets":7},
    ]

  });


  $('#dead').DataTable( {
    "paging":false,
    "fixedHeader": true,
    "scrollY": "140px",
    "table-layout":"fixed",
     "columnDefs":[
    {"width":60, "targets":0},
    {"width":60, "targets":1},
    {"width":60, "targets":2},
    {"width":60, "targets":3},
    {"width":90, "targets":4},
    {"width":90, "targets":5},
    {"width":90, "targets":6},
    {"width":90, "targets":7},
    ]

    // "table-layout":"fixed"



  });





});



</script>

【问题讨论】:

    标签: javascript jquery html twitter-bootstrap datatables


    【解决方案1】:

    问题是您的另一个选项卡已隐藏 (display: none)。您可以在dead 选项卡显示如下后初始化您的数据表:

    $('#completed').DataTable({
      "paging": false,
      // "fixedHeader": true,
      "scrollY": "140px",
      "table-layout": "fixed",
      "columnDefs": [{
          "width": 60,
          "targets": 0
        },
        {
          "width": 60,
          "targets": 1
        },
        {
          "width": 60,
          "targets": 2
        },
        {
          "width": 60,
          "targets": 3
        },
        {
          "width": 90,
          "targets": 4
        },
        {
          "width": 90,
          "targets": 5
        },
        {
          "width": 90,
          "targets": 6
        },
        {
          "width": 90,
          "targets": 7
        },
      ]
    
    });
    
    
    
    
    
    
    $('#deadTab').one('shown.bs.tab', function(e) {
      $('#dead').DataTable({
        "paging": false,
        "fixedHeader": true,
        "scrollY": "140px",
        "table-layout": "fixed",
        "columnDefs": [{
            "width": 60,
            "targets": 0
          },
          {
            "width": 60,
            "targets": 1
          },
          {
            "width": 60,
            "targets": 2
          },
          {
            "width": 60,
            "targets": 3
          },
          {
            "width": 90,
            "targets": 4
          },
          {
            "width": 90,
            "targets": 5
          },
          {
            "width": 90,
            "targets": 6
          },
          {
            "width": 90,
            "targets": 7
          },
        ]
    
        // "table-layout":"fixed"
    
      });
    })
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <link rel="stylesheet" href="//cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
    <script src="//cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js"></script>
    
    <div class="container">
      <div class='row'>
        <div class='col-lg-11'>
          <div id="pane3">
            <ul class="nav nav-tabs">
              <li class="active">
                <a href="#4a" data-toggle="tab">My Completed</a>
              </li>
              <li>
                <a href="#4b" id="deadTab" data-toggle="tab">Dead Requests</a>
              </li>
    
            </ul>
            <div class="tab-content">
              <div class='tab-pane active' id="4a">
                <!-- <div id="" style=" width: 100%; position:relative; height:200px;"> -->
                <table id='completed' class="table table-striped table-hover">
                  <thead>
                    <tr>
                      <th>Req. #</th>
                      <th>Project #</th>
                      <th>Client Name</th>
                      <th>Program</th>
                      <th>Request Type</th>
                      <th>Assignee</th>
                      <th>Completed Date</th>
                      <th>Clone</th>
    
                    </tr>
                  </thead>
                  <tbody>
                    <tr>
                      <td>July</td>
                      <td>Dooley</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>july@example.com</td>
                      <td>6/12/2017</td>
                      <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
                    </tr>
                    <tr>
                      <td>July</td>
                      <td>Dooley</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>july@example.com</td>
                      <td>6/12/2017</td>
                      <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
                    </tr>
                    <tr>
                      <td>July</td>
                      <td>Dooley</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>july@example.com</td>
                      <td>6/12/2017</td>
                      <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
                    </tr>
                    <tr>
                      <td>July</td>
                      <td>Dooley</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>july@example.com</td>
                      <td>6/12/2017</td>
                      <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
                    </tr>
                    <tr>
                      <td>July</td>
                      <td>Dooley</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>july@example.com</td>
                      <td>6/12/2017</td>
                      <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
                    </tr>
                    <tr>
                      <td>July</td>
                      <td>Dooley</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>july@example.com</td>
                      <td>6/12/2017</td>
                      <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
                    </tr>
                  </tbody>
                </table>
                <!--   </div> -->
              </div>
              <div class='tab-pane' id="4b">
                <!--  <div id="" style=" overflow:auto; position:relative; "> -->
                <table id='dead' class="table table-striped table-hover">
                  <thead>
                    <tr>
                      <th>Req. #</th>
                      <th>Project #</th>
                      <th>Client Name</th>
                      <th>Program</th>
                      <th>Request Type</th>
                      <th>Assignee</th>
                      <th>Dead Date</th>
                      <th>Restart</th>
                    </tr>
                  </thead>
                  <tbody>
                    <tr>
                      <td>July</td>
                      <td>Dooley</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>july@example.com</td>
                      <td>6/12/2017</td>
                      <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
                    </tr>
                    <tr>
                      <td>July</td>
                      <td>Dooley</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>july@example.com</td>
                      <td>6/12/2017</td>
                      <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
                    </tr>
                    <tr>
                      <td>July</td>
                      <td>Dooley</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>july@example.com</td>
                      <td>6/12/2017</td>
                      <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
                    </tr>
                    <tr>
                      <td>July</td>
                      <td>Dooley</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>july@example.com</td>
                      <td>6/12/2017</td>
                      <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
                    </tr>
                    <tr>
                      <td>July</td>
                      <td>Dooley</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>july@example.com</td>
                      <td>6/12/2017</td>
                      <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
                    </tr>
                    <tr>
                      <td>July</td>
                      <td>Dooley</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>john@e</td>
                      <td>july@example.com</td>
                      <td>6/12/2017</td>
                      <td><button type="button" class="btn btn-primary btn-xs">View Form</button></td>
                    </tr>
                  </tbody>
                </table>
                <!--  </div> -->
              </div>
            </div>
          </div>
        </div>
      </div>
    </div>

    【讨论】:

      猜你喜欢
      • 2021-09-11
      • 2021-09-02
      • 2022-01-02
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      • 1970-01-01
      • 2017-08-05
      相关资源
      最近更新 更多