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 页面执行时间计算代码
Mar 04 Javascript
理解Javascript_02_理解undefined和null
Oct 11 Javascript
javascript动画对象支持加速、减速、缓入、缓出的实现代码
Sep 30 Javascript
jquery三个关闭弹出层的小示例
Nov 05 Javascript
jQuery将多条数据插入模态框的示例代码
Sep 25 Javascript
jQuery中append()方法用法实例
Jan 08 Javascript
原生JavaScript制作计算器
Oct 16 Javascript
微信小程序 textarea 详解及简单使用方法
Dec 05 Javascript
vue实现简单实时汇率计算功能
Jan 15 Javascript
layer弹窗插件操作方法详解
May 19 Javascript
angular2模块和共享模块详解
Apr 08 Javascript
vue中使用codemirror的实例详解
Nov 01 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
模拟xcopy的函数
2006/10/09 PHP
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
PHP在特殊字符前加斜杠的实现代码
2011/07/17 PHP
javascript中的几个运算符
2007/06/29 Javascript
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
js实现一个省市区三级联动选择框代码分享
2013/03/06 Javascript
javascript中如何处理引号编码"
2013/08/15 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
浅谈Vue使用Elementui修改默认的最快方法
2020/12/05 Vue.js
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
python获取糗百图片代码实例
2013/12/18 Python
Python自动化部署工具Fabric的简单上手指南
2016/04/19 Python
Python爬虫利用cookie实现模拟登陆实例详解
2017/01/12 Python
Tensorflow之Saver的用法详解
2018/04/23 Python
Python列表对象实现原理详解
2019/07/01 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
美国著名手表网站:Timepiece
2017/11/15 全球购物
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
布里斯班女装时尚品牌:Adrift
2017/12/28 全球购物
荷兰家电购物网站:Expert.nl
2020/01/18 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
感恩寄语大全
2014/04/11 职场文书
环保口号大全
2014/06/12 职场文书
转让协议书范本
2014/09/13 职场文书
研究生个人学年总结
2015/02/14 职场文书
利用uni-app生成微信小程序的踩坑记录
2022/04/05 Javascript