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 相关文章推荐
jQuery学习总结之元素的相对定位和选择器(持续更新)
Apr 26 Javascript
jqgrid 简单学习笔记
May 03 Javascript
让innerText在firefox火狐和IE浏览器都能用的写法
May 14 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
Oct 11 Javascript
javascript 文件的同步加载与异步加载实现原理
Dec 13 Javascript
jQuery操作cookie方法实例教程
Nov 25 Javascript
使用jQuery获得内容以及内容的属性
Feb 26 Javascript
Jquery Mobile 自定义按钮图标
Nov 18 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
Nov 21 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
Jan 03 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
Feb 19 Javascript
微信小程序实现导航栏和内容上下联动功能代码
Jun 29 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
CodeIgniter辅助之第三方类库third_party用法分析
2016/01/20 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
2015/11/04 Javascript
javascript高级编程之函数表达式 递归和闭包函数
2015/11/29 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
简单学习vue指令directive
2016/11/03 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
js上下视差滚动简单实现代码
2017/03/07 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
python多线程编程方式分析示例详解
2013/12/06 Python
python list元素为tuple时的排序方法
2018/04/18 Python
对numpy中的数组条件筛选功能详解
2018/07/02 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
详解python中的线程与线程池
2019/05/10 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
python为什么要安装到c盘
2020/07/20 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
2021/01/29 Python
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
Bootstrap File Input文件上传组件
2020/12/01 HTML / CSS
戴森台湾线上商城:Dyson Taiwan
2018/05/21 全球购物
社区包粽子活动方案
2014/01/21 职场文书
学校三节实施方案
2014/06/09 职场文书
业务员岗位职责范本
2015/04/03 职场文书
Django展示可视化图表的多种方式
2021/04/08 Python
React forwardRef的使用方法及注意点
2021/06/13 Javascript
python实现层次聚类的方法
2021/11/01 Python
MySQL 数据类型详情
2021/11/11 MySQL
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL