`
hzy0769
  • 浏览: 46127 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

实现表头纵向滚动固定横向跟随

 
阅读更多

我们项目中的分页表格功能通常都会使用一些js开源组件,如ExtJs里的gridjquery的插件如ligeruibootstrap插件如bootstrap table等,但最近项目中由于想更加灵活调整式样设计,所以打算自己实现分页表格,由于项目中经常需要展示大量的数据,这时遇到的第一个问题就是如何实现表头标题行在纵向滚动时固定,横向滚动时跟随内容。后来查看ExtJs源码找到答案,本文就讲解下如何完美实现。

 

 

上下可拖动表格

 

首先编写一个可上下拖动的表格如下图所示



注意图中右上角,第一行标题位于整个纵向和横向滚动条区域内,也就是说当往下滚动时,第一行标题也跟着滚上去看不到了。

这种表格布局如下图所示:

布局图1



 

HTML布局看下图:

 

 

其实就是通过overflow:auto实现的滚动。

 

 

固定表头

为了实现在上下滚动时标题固定,把上面表格拆分为两个,上面一个显示标题,下面显示内容,标题部分表格使用overflow:hide隐藏滚动条,内容部分使用overflow:auto显示,如下图

布局图2



 

 HTML布局如下:

 



 

自动适配标题和内容每列宽度

拆分表格后,这是一个问题来了,就是标题和内容每列(td)的宽度不会自动对应为一致了,一种方法是手工设置标题和内容每个td的宽度,如<td width=’100px’>。每次标题调整宽度时,也对应更改内容部分对应td的值。

另外一种更快捷的方法是使用JS自动设置内容区每列的宽度,下面代码是使用Jquery实现的自动适配

var i=0;

$('.x-grid .x-grid-head tr:last td').each(function(){

    var w=$(this).width();

    $('.x-grid .x-grid-content tr:eq(0)').each(function(){

       $(this).children("td:eq("+i+")").width(w);

    });

    i++;

})

 

实现横向滚动

最后需要实现的就是当横向滚动时,标题也跟着滚动,这个可以通过js实现监听滚动事件,例如使用jqueryposition().left可以获取滚动后内容距离页面左边的距离,小于0就是滚出页面了,然后设置标题的left等于内容区的left就行,下面是jquery实现代码

//记录内容区显示的初始位置(left)

var ccLeft=0;

var tr0 = $('.x-grid .x-grid-content tr:eq(0)');

if(tr0.position()){

    ccLeft = tr0.position().left;

}

 

//横向滚动事件,实现同时横向滚动表头

$('.x-grid .x-grid-content').scroll(function() {

    // 检测是否横向滚动

    if (ccLeft != $(this)[0].scrollLeft) {

       // 滚动表头

       ccLeft = $(this).find("tr:eq(0)").position().left;

       $('.x-grid .x-grid-head').offset(function(idx, old) {

           return {

              top : old.top,

              left : ccLeft

           }

       });

    }

})

 

最后实现的效果如下



 

 

 

分享到:
评论

相关推荐

    gridview固定表头 横向滚动 纵向固定

    为了解决这个问题,本文将介绍如何实现GridView固定表头横向滚动纵向固定的功能。 知识点一:CSS样式 要实现GridView固定表头横向滚动纵向固定的功能,需要使用CSS样式来控制表头的位置。在样式中,我们可以使用...

    gridview固定表头的一个具体实例----横向滚动 纵向滚动

    ### GridView固定表头实现——横向滚动与纵向固定 在网页应用开发中,特别是涉及到大量数据展示的情况下,如何优雅地处理表格中的数据展示成为一个重要的技术挑战。本文将通过一个具体的实例来探讨如何实现在使用...

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

    JS实现table表格固定表头且表头随横向滚动而滚动的知识点如下: 1. **基本思路**: - 表头采用一个独立的table元素,并用一个div进行包裹。 - 头部外层div使用相对定位(position: relative),以使表头能够相...

    jQuery实现表头固定表格内容滚动效果

    在网页设计中,当表格数据过多时,为了保持良好的用户体验,常常需要实现表头固定而内容可滚动的效果。`jQuery`作为一个广泛使用的JavaScript库,提供了丰富的功能和便利的方法来实现这种效果。本教程将深入探讨如何...

    html Table 表头固定的实现

    为解决这个问题,就需要实现一个固定表头的效果,即无论表格如何滚动,表头始终固定在页面的顶部。 要实现这个效果,有几种常用的方法,主要包括使用CSS定位和JavaScript。而根据提供的文件内容,本文介绍了一种...

    纯CSS实现表头固定表格滚动条效果

    以上就是纯CSS实现表头固定表格滚动条效果的基本步骤。通过这种方式,你可以轻松地将这个功能集成到JSP、ASP、PHP或其他服务器端框架中,为用户提供更好的数据浏览体验。记得根据实际项目需求进行适当的定制和优化。

    纯CSS固定表头内容滚动表格

    这种设计方法尤其适用于那些包含大量数据且需要横向滚动查看的表格,极大地提升了用户体验。 首先,我们要理解“纯CSS”意味着不依赖JavaScript或其他编程语言,完全通过CSS(层叠样式表)来实现功能。CSS在网页...

    table横向纵向表头冻结js代码

    为了解决这个问题,我们可以使用JavaScript实现表头的冻结功能,无论是横向还是纵向,以确保用户在滚动时始终能看到表头。这就是"table横向纵向表头冻结js代码"所关注的核心技术。 在给定的资源中,我们有两个文件...

    利用纯css实现table固定列与表头中间横向滚动的思路和实例

    本篇文章主要探讨如何利用纯CSS实现table固定列与表头,同时在中间部分添加横向滚动条,以确保用户体验。 首先,我们面临的问题是表格内容因列数过多而产生换行,这影响了视觉效果。为了解决这个问题,可以使用CSS...

    gridview固定表头的一个实例

    描述:GridView固定表头 横向滚动 纵向固定,即拖动横向滚动条时,表头随着表体移动,纵向拖动滚动条时,表头固定不动实践中所得一个具体实例VS2010,C#。 标签:GridView表头 横向滚动 纵向固定 在这个实例中,...

    表头固定内容滚动,直接打开html即可运行

    标题"表头固定内容滚动,直接打开html即可运行"和描述"自己写的不同风格的表头固定内容滚动代码"提示我们,这是一个关于实现这种功能的代码示例,可以直接在HTML环境中运行查看效果。 表头固定通常通过CSS和...

    GridView或DataGrid 固定表头,滚动数据的例子学习心得

    因此,实现固定表头并滚动数据的功能成为了一个必要的优化。 标题中的"GridView或DataGrid 固定表头,滚动数据的例子学习心得"指的是一种技术技巧,用于解决上述问题。主要方法是通过CSS样式和JavaScript来实现。...

    HTML5_html表格表头固定不滚动内容滚动.rar

    HTML5_html表头固定不滚动而内容滚动的效果,表格是基于Div CSS实现的,将表头固定住不滚动,而表格里面的每行数据随滚动条滚动。在显示较多数据时,当用户滚动鼠标中轮时,表格内容会滚动,而表头固定不变,可以将...

    固定表头,上下滚动固定,左右滚动自动对齐

    html表格,固定表头,上下滚动时固定,左右滚动时自动对齐,缩放浏览器时,功能一样完美执行 ! 本人亲手写,亲自测试,功能完美,代码简单易懂! 对需要该功能特效的html表格的亲来说,有很大的帮助哦! 产权所有人:ぶん...

    bootstrap表格固定表头并且tbody部分添加滚动条

    要实现表头固定和tbody滚动的效果,我们需要对CSS进行一些定制。主要涉及以下几点: 1. **表头固定**:为`&lt;thead&gt;`添加`position: sticky;`和`top: 0;`属性,使其在滚动时保持在屏幕顶部。例如: ```css table....

    实现Table表头和列固定

    在实现表头固定时,通常将表头部分通过CSS样式设置为`position: fixed`,并设定适当的宽度和高度,使其在页面滚动时始终保持在屏幕顶部。 针对“多表头”,这通常涉及到嵌套的`&lt;thead&gt;`元素。例如,一级表头在最...

    JQUERY实现表头固定

    3. **jQuery介入**:为了实现动态的表头固定,我们需要使用jQuery监听滚动事件。当用户滚动页面时,JavaScript代码会捕获这个事件,并根据滚动条的位置调整表头的位置。例如,可以使用`$(window).scroll()`来监听...

    表格表头固定 内容可以滚动(示例)

    ### 表格表头固定,内容可以滚动的技术实现 在网页设计中,有时我们需要实现一个功能:当用户滚动表格内容时,表头始终固定显示在顶部,以便于用户查看列名,提高数据阅读效率。本篇文章将围绕这一需求展开讨论,并...

    c#gridview滚动条固定表头

    c# gridview 滚动条固定表头 IE已测试 c# gridview 滚动条固定表头 IE已测试 c# gridview 滚动条固定表头 IE已测试

Global site tag (gtag.js) - Google Analytics