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


Posted in Javascript onOctober 26, 2017

先看一张效果图

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

思路:

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

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

3、获取整个表格的高度

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

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

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

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

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

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表格固定表头且表头随横向滚动而滚动,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js截取字符串的两种方法及区别详解
Nov 05 Javascript
JavaScript遍历table表格中的某行某列并打印其值
Jul 08 Javascript
node.js中的console.trace方法使用说明
Dec 09 Javascript
对JavaScript中this指针的新理解分享
Jan 31 Javascript
jQuery选择器源码解读(一):Sizzle方法
Mar 31 Javascript
jQuery页面刷新(局部、全部)问题分析
Jan 09 Javascript
js实现表单及时验证功能 用户信息立即验证
Sep 13 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
Apr 12 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
Jun 02 Javascript
vue+element项目中过滤输入框特殊字符小结
Aug 07 Javascript
js实现蒙版效果
Jan 11 Javascript
关于vue 项目中浏览器跨域的配置问题
Nov 10 Javascript
纯JavaScript实现实时反馈系统时间
Oct 26 #Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
Oct 26 #Javascript
AngularJS实现的省市二级联动功能示例【可对选项实现增删】
Oct 26 #Javascript
input type=file 选择图片并且实现预览效果的实例
Oct 26 #Javascript
js 只比较时间大小的实例
Oct 26 #Javascript
基于Require.js使用方法(总结)
Oct 26 #Javascript
原生javascript实现文件异步上传的实例讲解
Oct 26 #Javascript
You might like
[原创]效率较高的php下读取文本文件的代码
2008/07/02 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
php实现微信支付之现金红包
2018/05/30 PHP
JavaScript去除空格的几种方法
2006/10/03 Javascript
Using the TextRange Object
2006/10/14 Javascript
js验证表单第二部分
2006/11/25 Javascript
json 实例详细说明教程
2009/10/31 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
jQuery中focus事件用法实例
2014/12/26 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
checkbox批量选中,获取选中项的值的简单实例
2016/06/28 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
Vue slot用法(小结)
2018/10/22 Javascript
详解基于webpack&amp;gettext的前端多语言方案
2019/01/29 Javascript
vue+egg+jwt实现登录验证的示例代码
2019/05/18 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
2020/05/29 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
2020/08/22 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
python sort、sorted高级排序技巧
2014/11/21 Python
Python3实现发送QQ邮件功能(文本)
2017/12/15 Python
pandas的相关系数与协方差实例
2019/12/27 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
python第三方库学习笔记
2020/02/07 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
html5如何在Canvas中实现自定义路径动画示例
2017/09/18 HTML / CSS
法国奢华女性时尚配饰网上商店:Monnier Frères
2016/08/27 全球购物
新秀丽官方旗舰店:Samsonite拉杆箱、双肩包、皮具
2018/03/05 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
工业学校毕业生自荐信范文
2014/01/03 职场文书
《童趣》教学反思
2014/02/19 职场文书