Angular8 实现table表格表头固定效果


Posted in Javascript onJanuary 03, 2020

最近项目中有个需求,表头固定,内部实现滚动条。除了单个表头,还有多个表头的情况(下一篇中介绍)。

效果图:

Angular8 实现table表格表头固定效果

html 结构

Angular8 实现table表格表头固定效果

按区域划分可以分为三个大部分,一共是通过4个table 组合成一个整体的table。
然后通过 col 属性去设定列的宽度,注意:这里的宽度必须要设置为固定值。
表头过滤功能暂时未实现。

Angular8 实现table表格表头固定效果

水平滚动效果与垂直滚动效果

监听主体table(浅绿色部分)滚动事件,同步上下滚动头部的table (深绿色部分)和 左右滚动左侧固定的table(红色部分中的紫色部分)

代码 1

$(this.tableContent.nativeElement).on('scroll', (e) => {
   $(this.fixedRowWrapper.nativeElement).prop('scrollTop', $(this.tableContent.nativeElement).prop('scrollTop'));
   //方式一 :设置头部固定列table 的滚动条,需要配合less 样式隐藏滚动条(如果不考虑ie9的兼容性,可以使用。less样式参考代码2)
   // $(this.tableHeader.nativeElement).prop('scrollLeft', $(this.tableContent.nativeElement).prop('scrollLeft'))
   // 方式二:设置头部固定列table 的margin-left 属性为负值,间接实现了头部固定的列同步向左滚动效果,兼容ie9
   $(this.tableHeader.nativeElement).css({ marginLeft: `${-$(this.tableContent.nativeElement).prop('scrollLeft')}px` })
  })

代码 2

.ngx-table__header-inner {
      // 隐藏滚动条,页面div 保持横向滚动,但是不支持ie9 ,为了兼容性所以没有使用,ts 中同步滚动
      // 而是动态设置 ngx-table__header-inner 的margin-left 实现滚动效果
      overflow: -moz-scrollbars-none;
      overflow-x: auto;
     -ms-overflow-style: none;

      &::-webkit-scrollbar {
       width: 0 !important;
       display: none;
     }
    }

完整代码地址

github项目地址,需要的可以点击访问 https://github.com/zjinger/ngx-TPR/tree/master/src/app/components/scroll-table

总结

以上所述是小编给大家介绍的Angular8 实现table表格表头固定效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
如何在Web页面上直接打开、编辑、创建Office文档
Mar 12 Javascript
解析Javascript中中括号“[]”的多义性
Dec 03 Javascript
Javascript玩转继承(二)
May 08 Javascript
设置点击文本框或图片弹出日历控件的实现代码
May 12 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
May 31 Javascript
JavaScript  event对象整理及详细介绍
Oct 10 Javascript
AngularJS Phonecat实例讲解
Nov 21 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
Jan 21 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 Javascript
Node.js 基础教程之全局对象
Aug 06 Javascript
js 毫秒转天时分秒的实例
Nov 17 Javascript
微信小程序如何使用globalData的方法
Jun 06 Javascript
uni-app 支持多端第三方地图定位的方法
Jan 03 #Javascript
Vue 实现登录界面验证码功能
Jan 03 #Javascript
JS实现扫码枪扫描二维码功能
Jan 03 #Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
Jan 03 #Javascript
uni-app如何实现增量更新功能
Jan 03 #Javascript
JS实现简单日历特效
Jan 03 #Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
Jan 02 #Javascript
You might like
PHP日期时间函数的高级应用技巧
2009/05/16 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
Php-Redis安装测试笔记
2015/03/05 PHP
PHP多文件上传类实例
2015/03/07 PHP
php中数组最简单的使用方法
2020/12/27 PHP
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
jquery实现拖动效果(代码分享)
2017/01/25 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
Python的设计模式编程入门指南
2015/04/02 Python
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
python中文乱码不着急,先看懂字节和字符
2017/12/20 Python
Python中一行和多行import模块问题
2018/04/01 Python
详解tensorflow载入数据的三种方式
2018/04/24 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
x-ua-compatible content=”IE=7, IE=9″意思理解
2013/07/22 HTML / CSS
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
涉外文秘个人求职的自我评价
2013/10/07 职场文书
协议书与合同的区别
2014/04/18 职场文书
爱我中华演讲稿
2014/05/20 职场文书
2014年党员个人剖析材料
2014/10/08 职场文书
买卖合同协议书范本
2014/10/18 职场文书
场地使用证明模板
2014/10/25 职场文书
写给老师的感谢信
2015/01/20 职场文书
商业计划书范文
2019/04/24 职场文书
python实现层次聚类的方法
2021/11/01 Python