利用js+css+html實現固定table的列頭不動_javascript技巧

來源:互聯網
上載者:User

話不多說,跟這小編來一起看下吧

1、CSS

<style type="text/css">  #scroll_head {    position: absolute;    display: none;  }</style>

2、Javascript

<script type="text/javascript">  //該函數在上面一個table資料載入完成後調用  //把表頭的寬度設定到會滾動的頁頭去  var copyWidth = function () {    var b = $('#data_tbody').prev().find('tr:last').find('th');    var c = $('#scroll_head').find('tr:last').find('th');    for (var i = 0; i < b.length; i++) {      var newWith = b.eq(i).width();      if ($.browser.msie) {        newWith += 1;      }      c.eq(i).width(newWith);    }  }  $(function () {    $(window).scroll(function () {      if ($('#data_tbody').length > 0) {        var thead = $('#data_tbody').prev();        var thOffset = thead.offset();        var scTop = $(window).scrollTop(); //捲軸相對top的位置        if (scTop > thOffset.top) {  //捲軸滾到thead及以下的位置,用臨時的thead代替顯示          $('#scroll_head').css('display', 'block');          $('#scroll_head').offset({ top: scTop, left: thOffset.left });        }        else { //捲軸滾到thead上的位置,用table的原始thead顯示          $('#scroll_head').css('display', 'none');        }      }    });  });</script>

3、Html內容

<div id="data_div">  <table>    @*thead內容及樣式同scroll_head中的thead*@    @*thead使用深背景色,避免滾動時和tbody內容重疊顯示*@    <thead>       <tr>        @*一級標題*@        <th class="tt1" colspan="2">一級1</th>        <th class="tt2" colspan="5">一級2</th>        <th class="tt3" colspan="6">一級3</th>      </tr>      <tr>        @*二級標題*@        <th style="width: 23px;">二級11</th>        <th style="width: 36px;">二級12</th>        <th class="tt" style="width: 40px;">二級21</th>        <th class="tt" style="width: 30px;">二級22</th>        <th class="tt" style="width: 30px;">二級23</th>        <th class="tt" style="width: 30px;">二級23</th>        <th class="tt" style="width: 30px;">二級24</th>        <th class="tt" style="width: 30px;">二級25</th>        <th class="tt" style="width: 30px;">二級31</th>        <th class="tt" style="width: 30px;">二級32</th>        <th class="tt" style="width: 30px;">二級33</th>        <th class="tt" style="width: 30px;">二級33</th>        <th class="tt" style="width: 30px;">二級34</th>        <th class="tt" style="width: 30px;">二級35</th>        <th class="tt" style="width: 30px;">二級36</th>      </tr>    </thead>    <tbody id="data_tbody">      資料內容,在資料載入完成後調用copyWidth()函數解決相容性    </tbody>  </table></div><div id="scroll_head" style="display:block; top: 168px; left: 0px; position: relative;">  <table width="100%">    <thead> @*thead使用深背景色,避免滾動時和tbody內容重疊顯示*@      <tr>        @*一級標題*@        <th class="tt1" colspan="2">一級1</th>        <th class="tt2" colspan="5">一級2</th>        <th class="tt3" colspan="6">一級3</th>      </tr>      <tr>        @*二級標題*@        <th style="width: 23px;">二級11</th>        <th style="width: 36px;">二級12</th>        <th class="tt" style="width: 40px;">二級21</th>        <th class="tt" style="width: 30px;">二級22</th>        <th class="tt" style="width: 30px;">二級23</th>        <th class="tt" style="width: 30px;">二級23</th>        <th class="tt" style="width: 30px;">二級24</th>        <th class="tt" style="width: 30px;">二級25</th>        <th class="tt" style="width: 30px;">二級31</th>        <th class="tt" style="width: 30px;">二級32</th>        <th class="tt" style="width: 30px;">二級33</th>        <th class="tt" style="width: 30px;">二級33</th>        <th class="tt" style="width: 30px;">二級34</th>        <th class="tt" style="width: 30px;">二級35</th>        <th class="tt" style="width: 30px;">二級36</th>      </tr>    </thead>  </table></div>

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的協助,如果有疑問大家可以留言交流,同時也希望多多支援雲棲社區!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.