Jquery外掛程式 — 表格固定表頭

來源:互聯網
上載者:User

Table固定表頭是老生常談的東西,從網上看了很多人的實現,但都不夠滿意,很多原因,比如說效果根本就沒實現,要不就是易用性很差,於是自己試著寫了一個Jquery固定表頭的外掛程式,與各位共用,此外掛程式還在測試階段,如果想要直接使用請各位根據自己項目微調。

實現原理圖:

 

針對原理圖的說明:

         所有的行(tr)可分為表頭和表體兩部分,把表格拆分為兩個表格,第一個表格放表頭,第二個表格放表體,我們要拖動的是表體,所以把第二個表格再用一層div封裝起來,目的是為了Scroll,之後整體再用一層大的div包裹起來,看上去就成了一個完整的表格,其實成型的效果是有2個div,2個table組裝而成的,而原來的那個表格根本就沒用了,直接刪除掉就OK了。

Jquery外掛程式代碼:

//+---------------------------------------------------//| jQuery外掛程式:表頭固定 (還需測試)//| author:阿明//+--------------------------------------------------- (function ($) {    $.fn.extend({        ScrollTable: function (options) {            var defaults = {                MaxHeight: 120,                MaxDataItemIndex: 1 // 固定前MaxDataItemIndex作為固定表頭            };            options = $.extend(defaults, options);            return this.each(function () {                var $this = $(this);                // 產生表頭部分和身體部分                var $cloneTableHeader = $this.clone();                var $cloneTableBody = $this.clone();                $cloneTableHeader.find("tr").filter(function (index) { return index >= options.MaxDataItemIndex }).remove();                $cloneTableBody.find("tr").filter(function (index) { return index < options.MaxDataItemIndex }).remove();                // 將產生的表頭和身體部分放入Container,並做一些微調                $this.after("<div class='ScrollTableContainer' style='border:1px solid;'></div>");                $this.next().append($cloneTableHeader);                $this.next().append("<div class='ScrollDiv' style='overflow-y:scroll;'></div>");                $this.next().css("width", $this.width() + 20);                $this.next().find("div.ScrollDiv").css({                    "max-height": options.MaxHeight,                    "width": $this.width() + 20,                    "margin-top": -2                });                $this.next().find("div.ScrollDiv").append($cloneTableBody);                $this.remove();            });        }    });})(jQuery);

  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.