php中表头不跟着滑动,JS实现table表格固定表头且表头随横向滚动而滚动

这篇文章主要介绍了JS实现table表格固定表头且表头可以随横向滚动而滚动,对js的朋友可以参考下本篇文章

先看一张效果图

726d70e7f29526c60af58276ea1e2730.gif

思路:

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

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

3、获取整个表格的高度

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

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

ce929051b7ae1b44480a82957ad1ced3.png

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

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

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表格固定表头且表头随横向滚动而滚动,希望对大家有所帮助!!

相关推荐:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值