<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 基于jQuery的固定表格頭部的代碼

    時(shí)間:2024-08-30 08:59:27 jQuery Mobile 我要投稿
    • 相關(guān)推薦

    基于jQuery的固定表格頭部的代碼

      有段時(shí)間做項(xiàng)目時(shí)候由于需要顯示一個(gè)列表,但是由于數(shù)據(jù)太多在滾動(dòng)的時(shí)候表頭必須凍結(jié)住,所以就寫了下面這個(gè)腳本(曾經(jīng)在網(wǎng)上也找過(guò)相應(yīng)的腳本,但是不怎么理想所以就自己寫了,但是目前由于項(xiàng)目?jī)H僅用到了表頭的凍結(jié),而不需要指定列凍結(jié)所以目前只能算個(gè)不完整的腳本,不過(guò)一般的僅僅需要表頭凍結(jié)就可以使用了),現(xiàn)在先看看截圖:

      這樣實(shí)現(xiàn)了表頭的凍結(jié),下面表體內(nèi)容可以自由滾動(dòng)

      看下代碼:

      //為jquery擴(kuò)展一個(gè)CloneTableHeader 方法

      復(fù)制代碼 代碼如下:

      jQuery.fn.CloneTableHeader = function(tableId, tableParentDivId) {

      //獲取凍結(jié)表頭所在的DIV,如果DIV已存在則移除

      var obj = document.getElementById("tableHeaderDiv" + tableId);

      if (obj) {

      jQuery(obj).remove();

      }

      var browserName = navigator.appName;//獲取瀏覽器信息,用于后面代碼區(qū)分瀏覽器

      var ver = navigator.appVersion;

      var browserVersion = parseFloat(ver.substring(ver.indexOf("MSIE") + 5, ver.lastIndexOf("Windows")));

      var content = document.getElementById(tableParentDivId);

      var scrollWidth = content.offsetWidth - content.clientWidth;

      var tableOrg = jQuery("#" + tableId);//獲取表內(nèi)容

      var table = tableOrg.clone();//克隆表內(nèi)容

      table.attr("id", "cloneTable");

      //注意:需要將要凍結(jié)的表頭放入thead中

      var tableHeader = jQuery(tableOrg).find("thead");

      var tableHeaderHeight = tableHeader.height();

      tableHeader.hide();

      var colsWidths = jQuery(tableOrg).find("tbody tr:first td").map(function() {

      return jQuery(this).width();

      });//動(dòng)態(tài)獲取每一列的寬度

      var tableCloneCols = jQuery(table).find("thead tr:first td")

      if (colsWidths.size() > 0) {//根據(jù)瀏覽器為凍結(jié)的表頭寬度賦值(主要是區(qū)分IE8)

      for (i = 0; i < tableCloneCols.size(); i++) {

      if (i == tableCloneCols.size() - 1) {

      if (browserVersion == 8.0)

      tableCloneCols.eq(i).width(colsWidths[i] + scrollWidth);

      else

      tableCloneCols.eq(i).width(colsWidths[i]);

      } else {

      tableCloneCols.eq(i).width(colsWidths[i]);

      }

      }

      }

      //創(chuàng)建凍結(jié)表頭的DIV容器,并設(shè)置屬性

      var headerDiv = document.createElement("div");

      headerDiv.appendChild(table[0]);

      jQuery(headerDiv).css("height", tableHeaderHeight);

      jQuery(headerDiv).css("overflow", "hidden");

      jQuery(headerDiv).css("z-index", "20");

      jQuery(headerDiv).css("width", "100%");

      jQuery(headerDiv).attr("id", "tableHeaderDiv" + tableId);

      jQuery(headerDiv).Before(tableOrg.parent());

      }

      以上就是完整代碼,現(xiàn)在看下如何使用:

      只需在頁(yè)面中加入以下腳本。

      這樣就可以了,傳入表和表所在的DIV的ID就OK了,必須注意的是:要凍結(jié)的表頭必須放入到thead中,否則無(wú)法實(shí)現(xiàn)凍結(jié)。

      以上代碼在IE6,7,8測(cè)試通過(guò),F(xiàn)F和chrome會(huì)出現(xiàn)表頭的寬度不準(zhǔn)確的問(wèn)題。

    【基于jQuery的固定表格頭部的代碼】相關(guān)文章:

    jquery提交按鈕的代碼03-30

    關(guān)jQuery彈出窗口簡(jiǎn)單實(shí)現(xiàn)代碼-javascript編程03-30

    jQuery程序設(shè)計(jì)03-30

    如何理解jquery事件冒泡03-29

    jQuery的DOM操作筆記03-29

    淺析jQuery 遍歷函數(shù)javascript03-29

    jQuery中prev()方法用法03-30

    jQuery中replaceAll()方法用法03-30

    jQuery 源碼分析和Ready函數(shù)03-29

    主站蜘蛛池模板: 99久久国产综合精品麻豆| 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲精品永久在线观看| 久久99精品国产| 嫩草伊人久久精品少妇AV| 热RE99久久精品国产66热| 中文字幕精品视频| 99精品无人区乱码在线观看 | 国产精品91视频| 亚洲精品成人片在线观看精品字幕| 国产精品国产三级在线高清观看| 国产AV国片精品有毛| 亚洲色精品88色婷婷七月丁香| 国产欧美精品一区二区色综合 | 精品国产一区二区三区在线观看| 国产精品视频第一页| 青青草原精品99久久精品66| 亚洲精品国产精品乱码不卞 | 久久精品水蜜桃av综合天堂| 四虎影院国产精品| 久久93精品国产91久久综合| 2021国产三级精品三级在专区| 国产成人久久精品一区二区三区| 亚洲国产精品无码久久SM| 亚洲国产成人精品女人久久久 | 久久国产精品成人免费| 国产精品日本一区二区不卡视频| 亚洲精品国产精品乱码不卡√ | 久久精品亚洲欧美日韩久久| 99riav国产精品| 色偷偷888欧美精品久久久| 国产精品宾馆在线精品酒店| 999精品视频| 国产精品久久久久久久久鸭| 99国产欧美久久久精品蜜芽 | 亚洲国产成人精品无码久久久久久综合 | www.亚洲精品.com| 精品国产三级a∨在线| 久久国产亚洲精品无码| 精品无码国产一区二区三区51安| 欧美午夜精品久久久久免费视|