html表头跟随滚动,JS实现table表格固定表头且表头随横向滚动而滚动_心善_前端开发者...
发布日期:2021-06-24 11:22:44 浏览次数:2 分类:技术文章

本文共 1001 字,大约阅读时间需要 3 分钟。

先看一张效果图

e5f353b4578695ae0f942f098ff158cd.gif

思路:

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

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

3、获取整个表格的高度

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

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

c133e616096edaa4b9912f4a91c30ae6.png

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

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

/**

* 最重要的一点是头和身体是两个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.

总结

以上所述是小编给大家介绍的开发者网站的支持!

转载地址:https://blog.csdn.net/weixin_32467749/article/details/117866443 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:rn webview加载本地静态html,React Native - Webview 加载本地文件
下一篇:html5 video视频资源保护,HTML5 视频播放 <video>

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月27日 01时51分31秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章