当前位置: 首页 > 面试题库 >

滚动时修复了HTML表头

景书
2023-03-14
问题内容

我具有以下表结构:

<table>   
<thead>   
    <tr>   
        <th colspan="4">Current</th>   
        <th colspan="4">New/Requested</th>   
    </tr>   
    <tr>   
        <th nowrap="nowrap">RSD &nbsp;&nbsp;&nbsp;&nbsp;</th>  
        <th nowrap="nowrap">CRSD &nbsp;&nbsp;&nbsp;&nbsp;</th>   
        <th nowrap="nowrap">MSD &nbsp;&nbsp;&nbsp;&nbsp;</th>   
        <th nowrap="nowrap">Open QTY &nbsp;&nbsp;&nbsp;&nbsp;</th>   
        <th nowrap="nowrap">CRD &nbsp;&nbsp;&nbsp;&nbsp;</th>   
        <th nowrap="nowrap">CRSD &nbsp;&nbsp;&nbsp;&nbsp;</th>  
        <th nowrap="nowrap">MSD &nbsp;&nbsp;&nbsp;&nbsp;</th>   
        <th nowrap="nowrap">Open QTY &nbsp;&nbsp;&nbsp;&nbsp;</th>   
        <th nowrap="nowrap">Action</th>   
        <th nowrap="nowrap">Reason</th>   
        <th nowrap="nowrap">Action Code Status </th>   
    </tr> 
    <tbody>
        <tr>
            <td></td>  
            <td></td>   
            .....plenty of rows
        </tr>
    </tbody>
</thead>   
</table>

我正在尝试修复标题,以便如果向下滚动它仍然可见,我怎样才能做到这一点?


问题答案:

为了达到我的目标,我编写了以下代码(如所问的那样)-

这是我写的插件。

(function ($) {
   $.fn.scrollbarTable = function (i) {
       var o = {};
       if (typeof (i) == 'number') o.height = i;
       else if (typeof (i) == 'object') o = i;
       else if (typeof (i) == 'undefined') o = {
           height: 300
       }
       return this.each(function () {
           var $t = $(this);
           var w = $t.width();
           $t.width(w - function (width) {
               var parent, child;
               if (width === undefined) {
                   parent = $('<div style="width:50px;height:50px;overflow:auto"><div style="height:50px;"></div></div>').appendTo('body');
                   child = parent.children();
                   width = child.innerWidth() - child.height(99).innerWidth();
                   parent.remove();
               }
               return width;
           }());
           var cols = [];
           var tableCols = [];
           $t.find('thead th,thead td').each(function () {
               cols.push($(this).width());
           });
           $t.find('tr:eq(1) th,thead td').each(function () {
               tableCols.push($(this).width());
           });
           var $firstRow = $t.clone();
           $firstRow.find('tbody').remove();
           $t.find('thead').remove();
           $t.before($firstRow);
           $firstRow.find('thead th,thead td').each(function (i) {
               $(this).attr('width', cols[i]);
           });
           $t.find('tr:first th,tr:first td').each(function (i) {
               $(this).attr('width', tableCols[i]);
           });
           var $wrap = $('<div>');
           $wrap.css({
               width: w,
               height: o.height,
               overflow: 'auto'
           });
           $t.wrap($wrap);
       })
   };
}(jQuery));

如何使用:

$(document).ready(function(){
    $('table#tabss').scrollbarTable();
}

希望能对某人有所帮助。

无论如何,感谢大家的支持… :)



 类似资料:
  • 我是JavaFX的新手,不知道如何解决这个问题。所以,我在TableView中有一个复选框列。例如,我先选择3个框,然后向下滚动表格。但当我进入表格顶部时,复选框没有被选中。以下是一些代码: 和数据类"User":

  • 我有一个类似的表格,我用数据填充它 而CSS就是这样 但是scroll不起作用,我想固定桌子的高度,如果超过了,就使用scrollbar

  • 我试图使标题和侧栏粘在滚动。标题贴得很好。侧边栏也粘着,但不断闪烁。我在某处读到这是由于Chrome的一个错误,但这个问题是普遍存在的。 当我尝试通过开发人员工具进行调试时,我可以看到“sticky”类不断地添加和移除到侧边栏中,而不是头。 任何见解都将受到高度赞赏。 JS: CSS:

  • 问题内容: 我有一张像这样的桌子,上面有数据 and CSS like that 但滚动不起作用,我想固定表格的高度,如果超出高度,则使用滚动条 问题答案: Table with Fixed Header Result This is working in all browser

  • 向前有一个滚动条,而不是一个正常的滚动条外,但到目前为止,我没有任何运气,有什么办法我可以做到这一点? 由于大量的行,表列表出界了,有没有办法在第5行之后切到导航的第二页或无限滚动条? 下面是表格html的代码 我尝试过使用datatable插件,但也有一些不太好的地方

  • 在我的HTML页面中,我有很多宽度:100VW的东西占据了整个页面。有一个垂直滚动条,它导致一个水平滚动条(因为垂直滚动条占用了20像素)。 这导致的更大问题是我的东西似乎偏离了中心。虽然只是轻微的,但一旦你注意到它(这需要大约3秒的凝视),它不会消失,而且是非常令人沮丧的。我贴了一张超级小浏览器窗口的截图。我还把代码贴出来了。 图像 null null 文字偏离了中心。我怎么解决这个?