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 html() in Firefox (uses .innerHTML) ignores DOM changes
Mar 05 Javascript
javascript dom代码应用 简单的相册[firefox only]
Jun 12 Javascript
JavaScript的类型简单说明
Sep 03 Javascript
js 静态动态成员 and 信息的封装和隐藏
May 29 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
Jun 16 Javascript
深入探讨javascript中的数据类型
Mar 04 Javascript
location.hash保存页面状态的技巧
Apr 28 Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 Javascript
react实现菜单权限控制的方法
Dec 11 Javascript
js序列化和反序列化的使用讲解
Jan 19 Javascript
vue.js实现回到顶部动画效果
Jul 31 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
Nov 11 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
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
xml在joomla表单中的应用详解分享
2012/07/19 PHP
解析关于wamp启动是80端口被占用的问题
2013/06/21 PHP
十幅图告诉你什么是PHP引用
2015/02/22 PHP
php实现简易聊天室应用代码
2015/09/23 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
jQuery中dom元素上绑定的事件详解
2015/04/24 Javascript
jquery实现未经美化的简洁TAB菜单效果
2015/08/28 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
Vue2.0实现组件数据的双向绑定问题
2018/03/06 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
2019/08/29 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
2020/01/05 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
Django框架中的对象列表视图使用示例
2015/07/21 Python
Python常见异常分类与处理方法
2017/06/04 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
Spring Cloud Feign高级应用实例详解
2019/12/10 Python
Docker部署Python爬虫项目的方法步骤
2020/01/19 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
Nike挪威官网:Nike.com (NO)
2018/11/26 全球购物
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
澳大利亚家庭花园和DIY工具网店:VidaXL
2019/05/03 全球购物
Bitiba意大利:在线宠物商店
2020/10/31 全球购物
大学专科求职信
2014/07/02 职场文书
4s店销售经理岗位职责
2014/07/19 职场文书
六一儿童节标语
2014/10/08 职场文书
工作失职自我检讨书
2015/05/05 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
2015年圣诞节寄语
2015/08/17 职场文书