当前位置: 首页 > 编程笔记 >

JS实现table表格固定表头且表头随横向滚动而滚动

姬泰
2023-03-14
本文向大家介绍JS实现table表格固定表头且表头随横向滚动而滚动,包括了JS实现table表格固定表头且表头随横向滚动而滚动的使用技巧和注意事项,需要的朋友参考一下

先看一张效果图

思路:

1、头部用一个table并用一个div包裹着, 表格的具体内容用一个table

2、头部外面的div用positon: relative相对定位

3、获取整个表格的高度

4、获取表格的dom(或者包裹着表格的dom)距离页面顶部的距离 offsetTop

5、滚动的零界点的距离 表格的高度+表格距离页面顶部的距离 如果滚动超过这个 就让头部的top值归0或原封不动

当然还有很多可以优化的地方 我只是展示一个小思路 嘿嘿嘿

题外话 为啥用红色表头 因为显眼哇 哈哈

JS代码

/**
     * 最重要的一点是头和身体是两个table 然后定位用relative 然后通过滚动来计算
     * */
      function FixedHead (){
        if( !(this instanceof FixedHead) ){
          return new FixedHead()
        };
        this.$dom = $('.dataTables_scrollHead'); // 表头外层dom
        this.offsetTop = this.$dom.offset().top; // 表头外层dom距离顶部的高度
        this.parents = this.$dom.parents('.dataTables_scroll'); // 表头外层dom最外面的盒子(包裹着table的盒子)
        this.outBoxHeight = this.parents.height(); // 表头外层dom最外面的盒子(包裹着table的盒子)的高度
        this.maxHeight = this.offsetTop + this.outBoxHeight; // 滚动的零界点 最多能滚动到哪里
        this.scroll();
      }
      FixedHead.prototype = {
        constructor: FixedHead,
        scroll: function(){
          var that = this;
          $(window).scroll(function(){
            var scrollTop = $(this).scrollTop();
            if((scrollTop > that.offsetTop) && (scrollTop < that.maxHeight)){
              that.$dom.css('top', (scrollTop - that.offsetTop + 50)+'px') // 这个50是因为我的头部导航固定在顶部 高是50 所以要加上
            }else {
              var topCss = that.$dom.css('top');
              if(topCss === '0px' || topCss === 'auto'){
              }else {
                that.$dom.css('top', '0px')
              }
            }
          })
        }
      }

总结

以上所述是小编给大家介绍的JS实现table表格固定表头且表头随横向滚动而滚动,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对呐喊html" target="_blank">教程网站的支持!

 类似资料:
  • 本文向大家介绍BootStrap的table表头固定tbody滚动的实例代码,包括了BootStrap的table表头固定tbody滚动的实例代码的使用技巧和注意事项,需要的朋友参考一下 关于bootstrap table其他知识不多说,直接给大家贴代码了。 关键代码如下所示: 以上所述是小编给大家介绍的BootStrap的table表头固定tbody滚动的实例代码,希望对大家有所帮助,如果大家有

  • 本文向大家介绍bootstrap监听滚动实现头部跟随滚动,包括了bootstrap监听滚动实现头部跟随滚动的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了bootstrap监听滚动头部跟随滚动的实现方法,供大家参考,具体内容如下 实现案例 css控制样式 js监听 导入js 知识只有共享才能传播,才能推崇出新的知识,才能学到更多,这里写的每一篇文字/博客,基本都是从网上查询了一下资料

  • 本文向大家介绍js实现列表向上无限滚动,包括了js实现列表向上无限滚动的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js实现列表向上无限滚动的具体代码,供大家参考,具体内容如下 先来一张效果图 html js css(样式自己调) 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍响应式表格之固定表头的简单实现,包括了响应式表格之固定表头的简单实现的使用技巧和注意事项,需要的朋友参考一下 数据展示时,表头的固定,可以有更好的可读性。 一、实现方式: 1、定义2个表格,一个absolute固定 2、表1<th>复制,并插入表2 3、resize()方法,实时获取表1各列<th>宽度 4、页面过小时,表格滚动带表头滚动 二、注意细节: 1、宽度自适应、去除单元格间

  • 问题内容: 我具有以下表结构: 我正在尝试修复标题,以便如果向下滚动它仍然可见,我怎样才能做到这一点? 问题答案: 为了达到我的目标,我编写了以下代码(如所问的那样)- 这是我写的插件。 如何使用: 希望能对某人有所帮助。 无论如何,感谢大家的支持… :)

  • 如下图所示:滚动时表格中的行在超过表头时还会继续滚动 贴下代码 这是为什么呢?