采用jQuery实现固定表头

openkk 13年前
     用JQuery写的固定表头插件,可实现DIV容器内部固定表头,可固定在页面中的顶部。    <pre class="brush:javascript; toolbar: true; auto-links: false;">/* 功能說明: 固定表頭。 創建人:  hmj 創建時間: 2011-06-29  功能:固定表頭。       使用容器的ID進行設定$("#div").chromatable({width: "100%",height: "100%", scrolling: "yes"})       table必須包含有<thead>標籤 參數:無。 */ (function($){      $.chromatable = {      defaults: {      width: "900px",  //設定容器寬度,待擴展程式     height: "300px", //設定容器高度,待擴展程式     scrolling: "yes" //yes跟隨IE滾動條而滑動, no固定在頁面上僅容器滾動條滑動     }      };      $.fn.chromatable = function(options){          var options = $.extend({}, $.chromatable.defaults, options);          return this.each(function(){              var $divObj = $(this);              var $tableObj = $divObj.find("table");             var $uniqueID = $tableObj.attr("ID") + ("wrapper");             var $class = $tableObj.attr("class");             var $tableWidth = $tableObj.width();             var top = $("#"+$tableObj.attr("ID")).offset().top;             var left = $("#"+$tableObj.attr("ID")).offset().left             $divObj.append("<table class='"+$class+"' id='"+$uniqueID+"' style='position:absolute;top:" +top+"px;left:"+left+"px;' width='"+$tableWidth+"' border='0' cellspacing='0' cellpadding='0'><thead>"+$("#"+$tableObj.attr("ID")).find("thead").html()+"</thead></table>");                              $.each($("#"+$tableObj.attr("ID")).find("thead th"), function(i,item){                 $("#"+$uniqueID).find("thead th").eq(i).width($(item).width());                 $(item).width($(item).width());             });                          if(options.scrolling === "yes")             {                 scrollEvent($tableObj.attr("ID"), $uniqueID);             }             resizeEvent($tableObj.attr("ID"), $uniqueID);          });              function scrollEvent(tableId, uniqueID)         {                         var element = $("#"+uniqueID);             $(window).scroll(function(){                 var top = $("#"+tableId).offset().top;                 var scrolls = $(this).scrollTop();                                   if (scrolls > top) {                     if (window.XMLHttpRequest) {                         element.css({                             position: "fixed",                             top: 0                         });                         } else {                         element.css({                             top: scrolls                         });                         }                 }else {                     element.css({                         position: "absolute",                         top: top                     });                     }                                                                });                     };                  function resizeEvent(tableId, uniqueID)         {                    var element = $("#"+uniqueID);              $(window).resize(function(){                 var top = $("#"+tableId).offset().top;                 var scrolls = $(this).scrollTop();                 if (scrolls > top) {                     if (window.XMLHttpRequest) {                         element.css({                             position: "fixed",                             top: 0                         });                         } else {                         element.css({                             top: scrolls                         });                         }                 }else {                     element.css({                         position: "absolute",                         top: top                     });                     }                           });         }     };     })(jQuery); </pre>