zoukankan      html  css  js  c++  java
  • 利用js、css、html固定table的列头不动

    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=" 23px;">二级11</th>
                    <th style=" 36px;">二级12</th>
                    <th class="tt" style=" 40px;">二级21</th>
                    <th class="tt" style=" 30px;">二级22</th>
                    <th class="tt" style=" 30px;">二级23</th>
                    <th class="tt" style=" 30px;">二级23</th>
                    <th class="tt" style=" 30px;">二级24</th>
                    <th class="tt" style=" 30px;">二级25</th>
                    <th class="tt" style=" 30px;">二级31</th>
                    <th class="tt" style=" 30px;">二级32</th>
                    <th class="tt" style=" 30px;">二级33</th>
                    <th class="tt" style=" 30px;">二级33</th>
                    <th class="tt" style=" 30px;">二级34</th>
                    <th class="tt" style=" 30px;">二级35</th>
                    <th class="tt" style=" 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=" 23px;">二级11</th>
                    <th style=" 36px;">二级12</th>
                    <th class="tt" style=" 40px;">二级21</th>
                    <th class="tt" style=" 30px;">二级22</th>
                    <th class="tt" style=" 30px;">二级23</th>
                    <th class="tt" style=" 30px;">二级23</th>
                    <th class="tt" style=" 30px;">二级24</th>
                    <th class="tt" style=" 30px;">二级25</th>
                    <th class="tt" style=" 30px;">二级31</th>
                    <th class="tt" style=" 30px;">二级32</th>
                    <th class="tt" style=" 30px;">二级33</th>
                    <th class="tt" style=" 30px;">二级33</th>
                    <th class="tt" style=" 30px;">二级34</th>
                    <th class="tt" style=" 30px;">二级35</th>
                    <th class="tt" style=" 30px;">二级36</th>
                </tr>
            </thead>
        </table>
    </div>
  • 相关阅读:
    9、Python 数据分析-2012美国大选献金项目
    Java 多线程
    高并发和多线程的关系
    什么是同一网段
    什么是CPU密集型、IO密集型?
    Ubuntu的which、whereis、locate和find命令
    python装饰器
    python 面试题
    Gsview裁剪EPS文件
    LaTeX pdf转eps格式
  • 原文地址:https://www.cnblogs.com/gossip/p/3835587.html
Copyright © 2011-2022 走看看