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 相关文章推荐
代码精简的可以实现元素圆角的js函数
Jul 21 Javascript
15 个 JavaScript Web UI 库
May 19 Javascript
IE6 fixed的完美解决方案
Mar 31 Javascript
jQuery中[attribute]选择器用法实例
Dec 31 Javascript
jquery validate.js表单验证入门实例(附源码)
Nov 10 Javascript
五种js判断是否为整数类型方式
Dec 03 Javascript
轻松实现Bootstrap图片轮播
Apr 20 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
Aug 03 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
Jul 25 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
Oct 23 Javascript
jquery检测上传文件大小示例
Apr 26 jQuery
vue中使用腾讯云Im的示例
Oct 23 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之第六天
2006/10/09 PHP
php动态生成JavaScript代码
2009/03/09 PHP
php中对2个数组相加的函数
2011/06/24 PHP
使用php判断网页是否gzip压缩
2013/06/25 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
用 js 写一个 js 解释器过程详解
2019/08/02 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
[01:34:42]NAVI vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python中对列表排序实例
2015/01/04 Python
Python中的类与对象之描述符详解
2015/03/27 Python
使用C++扩展Python的功能详解
2018/01/12 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
2018/09/04 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
使用Python实现音频双通道分离
2020/12/25 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
HTML5+CSS3应用详解
2014/02/24 HTML / CSS
就业推荐表自我鉴定
2013/10/29 职场文书
单位绩效考核方案
2014/05/11 职场文书
学校光盘行动倡议书
2015/04/28 职场文书
电影开国大典观后感
2015/06/04 职场文书
创业计划书之宠物店
2019/09/19 职场文书
解决Mysql的left join无效及使用的注意事项说明
2021/07/01 MySQL
Python pandas求方差和标准差的方法实例
2021/08/04 Python
python 离散点图画法的实现
2022/04/01 Python
Mysql索引失效 数据库表中有索引还是查询很慢
2022/05/15 MySQL