javascript - 当表格可以水平滚动时,StickyHeaders 是固定的

标签 javascript jquery html css tablesorter

我有一个包含大量列的巨大表格,它被插入到一个溢出属性设置为 auto 的 div 元素中。我正在使用 StickyHeaders 小部件(@Mottie 的 TableSorter 插件 fork 的小部件)并且无法使 stickyHeaders 随表体滚动。

HTML

<div style="overflow-y:auto">
  <table class="tablesorter">
    <thead>
    <tr>
        <th>Row ID</th>
        <th>AlphaNumeric</th>
        <th>Numeric</th>
        <th>Numeric</th>
        <th>Numeric</th>
        <th>Numeric</th>
        <th>Numeric</th>
        <th>Numeric</th>
        <th>Animals</th>
        <th>Sites</th>
    </tr>
   </thead>
   <tbody>
    <tr>
        <td>row1</td>
        <td>abc 123</td>
        <td>10</td>
        <td>Koala</td>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>row2</td>
        <td>abc 1</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Ox</td>
        <td>http://www.yahoo.com</td>
    </tr>
    <tr>
        <td>row3</td>
        <td>abc 9</td>
        <td>10</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Girafee</td>
        <td>http://www.facebook.com</td>
    </tr>
    <tr>
        <td>row4</td>
        <td>zyx 24</td>
        <td>767</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Bison</td>
        <td>http://www.whitehouse.gov/</td>
    </tr>
    <tr>
        <td>row5</td>
        <td>abc 11</td>
        <td>3</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Chimp</td>
        <td>http://www.ucla.edu/</td>
    </tr>
    <tr>
        <td>row6</td>
        <td>abc 2</td>
        <td>56</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Elephant</td>
        <td>http://www.wikipedia.org/</td>
    </tr>
    <tr>
        <td>row7</td>
        <td>abc 9</td>
        <td>155</td>
        <td>Lion</td>
        <td>http://www.nytimes.com/</td>
    </tr>
    <tr>
        <td>row8</td>
        <td>ABC 10</td>
        <td>87</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Zebra</td>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>row9</td>
        <td>zyx 1</td>
        <td>999</td>
        <td>Koala</td>
        <td>http://www.mit.edu/</td>
    </tr>
    <tr>
        <td>row10</td>
        <td>zyx 12</td>
        <td>0</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Llama</td>
        <td>http://www.nasa.gov/</td>
    </tr>
    <tr>
        <td>row1</td>
        <td>abc 123</td>
        <td>10</td>
        <td>Koala</td>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>row2</td>
        <td>abc 1</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Ox</td>
        <td>http://www.yahoo.com</td>
    </tr>
    <tr>
        <td>row3</td>
        <td>abc 9</td>
        <td>10</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Girafee</td>
        <td>http://www.facebook.com</td>
    </tr>
    <tr>
        <td>row4</td>
        <td>zyx 24</td>
        <td>767</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Bison</td>
        <td>http://www.whitehouse.gov/</td>
    </tr>
    <tr>
        <td>row5</td>
        <td>abc 11</td>
        <td>3</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Chimp</td>
        <td>http://www.ucla.edu/</td>
    </tr>
    <tr>
        <td>row6</td>
        <td>abc 2</td>
        <td>56</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Elephant</td>
        <td>http://www.wikipedia.org/</td>
    </tr>
    <tr>
        <td>row7</td>
        <td>abc 9</td>
        <td>155</td>
        <td>Lion</td>
        <td>http://www.nytimes.com/</td>
    </tr>
    <tr>
        <td>row8</td>
        <td>ABC 10</td>
        <td>87</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Zebra</td>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>row9</td>
        <td>zyx 1</td>
        <td>999</td>
        <td>Koala</td>
        <td>http://www.mit.edu/</td>
    </tr>
    <tr>
        <td>row10</td>
        <td>zyx 12</td>
        <td>0</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Llama</td>
        <td>http://www.nasa.gov/</td>
    </tr>
    <tr>
        <td>row1</td>
        <td>abc 123</td>
        <td>10</td>
        <td>Koala</td>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>row2</td>
        <td>abc 1</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Ox</td>
        <td>http://www.yahoo.com</td>
    </tr>
    <tr>
        <td>row3</td>
        <td>abc 9</td>
        <td>10</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Girafee</td>
        <td>http://www.facebook.com</td>
    </tr>
    <tr>
        <td>row4</td>
        <td>zyx 24</td>
        <td>767</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Bison</td>
        <td>http://www.whitehouse.gov/</td>
    </tr>
    <tr>
        <td>row5</td>
        <td>abc 11</td>
        <td>3</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Chimp</td>
        <td>http://www.ucla.edu/</td>
    </tr>
    <tr>
        <td>row6</td>
        <td>abc 2</td>
        <td>56</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Elephant</td>
        <td>http://www.wikipedia.org/</td>
    </tr>
    <tr>
        <td>row7</td>
        <td>abc 9</td>
        <td>155</td>
        <td>Lion</td>
        <td>http://www.nytimes.com/</td>
    </tr>
    <tr>
        <td>row8</td>
        <td>ABC 10</td>
        <td>87</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Zebra</td>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>row9</td>
        <td>zyx 1</td>
        <td>999</td>
        <td>Koala</td>
        <td>http://www.mit.edu/</td>
    </tr>
    <tr>
        <td>row10</td>
        <td>zyx 12</td>
        <td>0</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Llama</td>
        <td>http://www.nasa.gov/</td>
    </tr>
    <tr>
        <td>row1</td>
        <td>abc 123</td>
        <td>10</td>
        <td>Koala</td>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>row2</td>
        <td>abc 1</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Ox</td>
        <td>http://www.yahoo.com</td>
    </tr>
    <tr>
        <td>row3</td>
        <td>abc 9</td>
        <td>10</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Girafee</td>
        <td>http://www.facebook.com</td>
    </tr>
    <tr>
        <td>row4</td>
        <td>zyx 24</td>
        <td>767</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Bison</td>
        <td>http://www.whitehouse.gov/</td>
    </tr>
    <tr>
        <td>row5</td>
        <td>abc 11</td>
        <td>3</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Chimp</td>
        <td>http://www.ucla.edu/</td>
    </tr>
    <tr>
        <td>row6</td>
        <td>abc 2</td>
        <td>56</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Elephant</td>
        <td>http://www.wikipedia.org/</td>
    </tr>
    <tr>
        <td>row7</td>
        <td>abc 9</td>
        <td>155</td>
        <td>Lion</td>
        <td>http://www.nytimes.com/</td>
    </tr>
    <tr>
        <td>row8</td>
        <td>ABC 10</td>
        <td>87</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Zebra</td>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>row9</td>
        <td>zyx 1</td>
        <td>999</td>
        <td>Koala</td>
        <td>http://www.mit.edu/</td>
    </tr>
    <tr>
        <td>row10</td>
        <td>zyx 12</td>
        <td>0</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Llama</td>
        <td>http://www.nasa.gov/</td>
    </tr>
    <tr>
        <td>row1</td>
        <td>abc 123</td>
        <td>10</td>
        <td>Koala</td>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>row2</td>
        <td>abc 1</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Ox</td>
        <td>http://www.yahoo.com</td>
    </tr>
    <tr>
        <td>row3</td>
        <td>abc 9</td>
        <td>10</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Girafee</td>
        <td>http://www.facebook.com</td>
    </tr>
    <tr>
        <td>row4</td>
        <td>zyx 24</td>
        <td>767</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Bison</td>
        <td>http://www.whitehouse.gov/</td>
    </tr>
    <tr>
        <td>row5</td>
        <td>abc 11</td>
        <td>3</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Chimp</td>
        <td>http://www.ucla.edu/</td>
    </tr>
    <tr>
        <td>row6</td>
        <td>abc 2</td>
        <td>56</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Elephant</td>
        <td>http://www.wikipedia.org/</td>
    </tr>
    <tr>
        <td>row7</td>
        <td>abc 9</td>
        <td>155</td>
        <td>Lion</td>
        <td>http://www.nytimes.com/</td>
    </tr>
    <tr>
        <td>row8</td>
        <td>ABC 10</td>
        <td>87</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Zebra</td>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>row9</td>
        <td>zyx 1</td>
        <td>999</td>
        <td>Koala</td>
        <td>http://www.mit.edu/</td>
    </tr>
    <tr>
        <td>row10</td>
        <td>zyx 12</td>
        <td>0</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Llama</td>
        <td>http://www.nasa.gov/</td>
    </tr>
    <tr>
        <td>row1</td>
        <td>abc 123</td>
        <td>10</td>
        <td>Koala</td>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>row2</td>
        <td>abc 1</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Ox</td>
        <td>http://www.yahoo.com</td>
    </tr>
    <tr>
        <td>row3</td>
        <td>abc 9</td>
        <td>10</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Girafee</td>
        <td>http://www.facebook.com</td>
    </tr>
    <tr>
        <td>row4</td>
        <td>zyx 24</td>
        <td>767</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Bison</td>
        <td>http://www.whitehouse.gov/</td>
    </tr>
    <tr>
        <td>row5</td>
        <td>abc 11</td>
        <td>3</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Chimp</td>
        <td>http://www.ucla.edu/</td>
    </tr>
    <tr>
        <td>row6</td>
        <td>abc 2</td>
        <td>56</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Elephant</td>
        <td>http://www.wikipedia.org/</td>
    </tr>
    <tr>
        <td>row7</td>
        <td>abc 9</td>
        <td>155</td>
        <td>Lion</td>
        <td>http://www.nytimes.com/</td>
    </tr>
    <tr>
        <td>row8</td>
        <td>ABC 10</td>
        <td>87</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Zebra</td>
        <td>http://www.google.com</td>
    </tr>
    <tr>
        <td>row9</td>
        <td>zyx 1</td>
        <td>999</td>
        <td>Koala</td>
        <td>http://www.mit.edu/</td>
    </tr>
    <tr>
        <td>row10</td>
        <td>zyx 12</td>
        <td>0</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>234</td>
        <td>Llama</td>
        <td>http://www.nasa.gov/</td>
    </tr>
   </tbody>
   </table>
 <div>

JS 代码

$('table').tablesorter({
    theme: 'blue',
    widgets: ['zebra', 'columns', 'stickyHeaders', 'filter'],
    usNumberFormat: false,
    sortReset: true,
    sortRestart: true
});

为了演示这个问题,我把它放到了 jsfiddle 中。向下滚动表格,然后水平滚动。 问题演示:http://jsfiddle.net/0088y5ba/4/

同样的问题 ( How to use tablesorter stickyheaders widget - not working? ) 对我不起作用。

最佳答案

There is an issue当 stickyHeaders 表包含在没有设置高度的 div 中时,我只是没有时间处理它。

  • 一种解决方案是向 div 包装器添加高度 ( demo )

    HTML

    <div class="wrapper">
        <table class="tablesorter">
        ...
        </table>
    <div>
    

    CSS

    .wrapper {
      position: relative;
      padding: 0 5px;
      height: 350px;
      overflow-y: auto;
    }
    

    脚本

    $('table').tablesorter({
        theme: 'blue',
        widgets: ['zebra', 'columns', 'stickyHeaders', 'filter'],
        widgetOptions: {
            stickyHeaders_attachTo: $('.wrapper')
        },
        usNumberFormat: false,
        sortReset: true,
        sortRestart: true
    });
    
  • 如果您的用户群支持,第二种解决方案是使用 cssStickyHeaders widget不需要额外更改的地方 ( demo )

    $('table').tablesorter({
        theme: 'blue',
        widgets: ['zebra', 'columns', 'cssStickyHeaders', 'filter'],
        usNumberFormat: false,
        sortReset: true,
        sortRestart: true
    });
    

关于javascript - 当表格可以水平滚动时,StickyHeaders 是固定的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25658326/

相关文章:

javascript - 禁用范围输入的 HTML5 拖放

javascript - 刷新后过滤器被清除

javascript - .slideToggle() 以滞后/不稳定的动画运行

javascript - 填充从特定年份到当前年份的下拉列表

jquery - 使用angular js在li标签中添加标题

javascript - 同步文本框(在表单中输入)

javascript - 实现选择集动态选项问题

javascript - 为什么我的模态框在点击后没有显示?

javascript - 在网站上使用 html 中的 vba 更新依赖组合框

javascript - 使用下划线确定对象是否存在于深度嵌套的对象数组中?