实现双向固定表头的表格

实现目标

  1. 包含横向表头和纵向表头的表格
  2. 在横向滚动轴滚动时,横向表头随之滚动,纵向表头固定不变
  3. 在纵向滚动轴滚动时,纵向表头随之滚动,横向表头固定不变
  4. 效果图

    这里写图片描述

使用资源

  1. angularjs
  2. jquery
  3. sublime

实现

1.基本结构
由于滚动轴会占据一定位置所以在横向表头和纵向表头计算时需要排除掉滚动条的宽动,如果希望使用插件scrollbar.js。

scrollbar.js是由jQuery写成的自定义样式的滚动条插件,特点是不会占用位置,并且在鼠标移出时隐藏显示,移入时正常显示,具有较好的浏览器兼容性。如果在angular中使用的话,可以通过directive对其进行封装。

这里写图片描述

由图中展示,整体结构分为四块,固定标题,横向表头,纵向表头和表格内容,滚动条只存在于表格内容块中。使用CSS的绝对定位便可达到如图的效果。

html代码,如下所示

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>双表头固定表格实现</title>
    <link rel="stylesheet" type="text/css" href="fixHeaderTable.css">
    <link rel="stylesheet" type="text/css" href="base.css">
</head>

<body ng-app="app">
    <div class="fixed-header-table" ng-controller="tableController">
        <div class="first-row">
            <!-- 固定标题 -->
            <div class="fixed-title">
            </div>
            <!-- 横向表头 -->
            <div class="fixed-row-header">
                <!-- 循环生成横向表头的标题 -->
                <ul id="rowHeader" class="row-header-list">
                    <li class="row-header-item" ng-repeat="row in mockData.rowHeader">
                        <span class="row-header-text">{
   {
   row}}</span>
                    </li>
                </ul>
            </div>
        </div>
        <div class="second-row">
            <!-- 纵向表头 -->
            <div class="fixed-col-header">
                <!-- 循环生成总向表头的标题 -->
                <ul id="colHeader" class="col-header-list"
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值