zoukankan      html  css  js  c++  java
  • jquery固定表头和列头

    1.对网上的开源方法稍作了些修改

        <script type="text/javascript">// <![CDATA[
            function FixTable(TableID, FixColumnNumber, width, height) {
                /// <summary> 
                /// 锁定表头和列 
                /// <para> sorex.cnblogs.com </para> 
                /// </summary> 
                /// <param name="TableID" type="String"> 
                /// 要锁定的Table的ID 
                /// </param> 
                /// <param name="FixColumnNumber" type="Number"> 
                /// 要锁定列的个数 
                /// </param> 
                /// <param name="width" type="Number"> 
                /// 显示的宽度 
                /// </param> 
                /// <param name="height" type="Number"> 
                /// 显示的高度 
                /// </param>
    
                if ($("#" + TableID + "_tableLayout").length != 0) {
                    $("#" + TableID + "_tableLayout").before($("#" + TableID));
                    $("#" + TableID + "_tableLayout").empty();
                }
                else {
                    $("#" + TableID).after("<div id='" + TableID + "_tableLayout' style='overflow:hidden;height:" + height + "px; " + width + "px;'></div>");
                }
                $('<div id="' + TableID + '_tableFix"></div>'
    + '<div id="' + TableID + '_tableHead"></div>'
    + '<div id="' + TableID + '_tableColumn"></div>'
    + '<div id="' + TableID + '_tableData"></div>').appendTo("#" + TableID + "_tableLayout");
                var oldtable = $("#" + TableID);
                var tableFixClone = oldtable.clone(true);
                tableFixClone.attr("id", TableID + "_tableFixClone");
                $("#" + TableID + "_tableFix").append(tableFixClone);
                var tableHeadClone = oldtable.clone(true);
                tableHeadClone.attr("id", TableID + "_tableHeadClone");
                $("#" + TableID + "_tableHead").append(tableHeadClone);
                var tableColumnClone = oldtable.clone(true);
                tableColumnClone.attr("id", TableID + "_tableColumnClone");
                $("#" + TableID + "_tableColumn").append(tableColumnClone);
                $("#" + TableID + "_tableData").append(oldtable);
                $("#" + TableID + "_tableLayout table").each(function () {
                    $(this).css("margin", "0");
                });
                var HeadHeight = $("#" + TableID + "_tableHead thead").height();
                HeadHeight += 2;
                $("#" + TableID + "_tableHead").css("height", HeadHeight);
                $("#" + TableID + "_tableFix").css("height", HeadHeight);
                var ColumnsWidth = 0;
                var ColumnsNumber = 0;
                $("#" + TableID + "_tableColumn tr:last td:lt(" + FixColumnNumber + ")").each(function () {
                    ColumnsWidth += $(this).outerWidth(true);
                    ColumnsNumber++;
                });
                ColumnsWidth += 2;
    
                if (ColumnsNumber >= 2) ColumnsWidth--;
                $("#" + TableID + "_tableColumn").css("width", ColumnsWidth);
                $("#" + TableID + "_tableFix").css("width", ColumnsWidth);
                $("#" + TableID + "_tableData").scroll(function () {
                    $("#" + TableID + "_tableHead").scrollLeft($("#" + TableID + "_tableData").scrollLeft());
                    $("#" + TableID + "_tableColumn").scrollTop($("#" + TableID + "_tableData").scrollTop());
                });
                $("#" + TableID + "_tableFix").css({ "overflow": "hidden", "position": "relative", "z-index": "50", "background-color": "#FFFFFF" });
                $("#" + TableID + "_tableHead").css({ "overflow": "hidden", "width": width - 17, "position": "relative", "z-index": "45", "background-color": "#FFFFFF" });
                $("#" + TableID + "_tableColumn").css({ "overflow": "hidden", "height": height - 17, "position": "relative", "z-index": "40", "background-color": "#FFFFFF" });
                $("#" + TableID + "_tableData").css({ "overflow": "auto", "width": width, "height": height, "position": "relative", "z-index": "35" });
                if ($("#" + TableID + "_tableHead").width() > $("#" + TableID + "_tableFix table").width()) {
                    $("#" + TableID + "_tableHead").css("width", $("#" + TableID + "_tableFix table").width());
                    $("#" + TableID + "_tableData").css("width", $("#" + TableID + "_tableFix table").width() + 17);
                }
                if ($("#" + TableID + "_tableColumn").height() > $("#" + TableID + "_tableColumn table").height()) {
                    $("#" + TableID + "_tableColumn").css("height", $("#" + TableID + "_tableColumn table").height());
                    $("#" + TableID + "_tableData").css("height", $("#" + TableID + "_tableColumn table").height() + 17);
                }
                $("#" + TableID + "_tableFix").offset($("#" + TableID + "_tableLayout").offset());
                $("#" + TableID + "_tableHead").offset($("#" + TableID + "_tableLayout").offset());
                $("#" + TableID + "_tableColumn").offset($("#" + TableID + "_tableLayout").offset());
                $("#" + TableID + "_tableData").offset($("#" + TableID + "_tableLayout").offset());
            }
    // ]]></script>

    2.自动获取最外层容器达到自适应的效果

    //外层自适应容器
    <div id="tableDS">
    </div>
    //调用方法
    FixTable("MainMKJTable", 1, $("#tableDS").width(), $("#tableDS").height());

    3.

            #tableDS
            {
                width: 100%;
                border-bottom: 1px solid #e2e2e2;
                margin: 20px 0 20px 0;
                float: left;
                line-height: 20px;
            }

    需要注意的是加入的Table不能添加width、height等属性。

  • 相关阅读:
    sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock
    redis常用命令大全
    MySQL explain使用
    rabbitmq添加user及vhost
    Make sure you've included captcha.urls as explained in the INSTALLATION section on
    django.db.migrations.exceptions.InconsistentMigrationHistory: Migration admin.0001_initial is applie
    ARM实验5 —— 按键中断实验
    ARM实验4—按键轮询实验
    ARM实验3 ——串口实验
    ARM实验2 —— 蜂鸣器实验
  • 原文地址:https://www.cnblogs.com/midcn/p/5556564.html
Copyright © 2011-2022 走看看