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 相关文章推荐
JavaScript 对象、函数和继承
Jul 07 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
Dec 30 Javascript
Js nodeType 属性全面解析
Nov 14 Javascript
js中typeof的用法汇总
Dec 12 Javascript
jQuery中delegate与on的用法与区别示例介绍
Dec 20 Javascript
js操作iframe父子窗体示例
May 22 Javascript
Jquery实现弹性滑块滑动选择数值插件
Aug 08 Javascript
JS中使用FormData上传文件、图片的方法
Aug 07 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
Feb 24 jQuery
基于JavaScript实现一个简单的Vue
Sep 26 Javascript
Next.js项目实战踩坑指南(笔记)
Nov 29 Javascript
jQuery实现的移动端图片缩放功能组件示例
May 01 jQuery
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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
php实现阿拉伯数字和罗马数字相互转换的方法
2015/04/17 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
JQUERY操作JSON实例代码
2010/02/09 Javascript
jQuery validate 中文API 附validate.js中文api手册
2010/07/31 Javascript
javascript截取字符串小结
2015/04/28 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
详解JS中定时器setInterval和setTImeout的this指向问题
2017/01/06 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
微信小程序学习总结(四)事件与冒泡实例分析
2020/06/04 Javascript
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
精确查找PHP WEBSHELL木马的方法(1)
2011/04/12 Python
Python的迭代器和生成器
2015/07/29 Python
Python动刷新抢12306火车票的代码(附源码)
2018/01/24 Python
Tensorflow 实现分批量读取数据
2020/01/04 Python
python实现猜数游戏
2020/03/27 Python
python如何使用腾讯云发送短信
2020/09/17 Python
python wsgiref源码解析
2021/02/06 Python
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
罗技美国官网:Logitech美国
2020/01/22 全球购物
印度第一网上礼品店:IGP.com
2020/02/06 全球购物
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
EJB的角色和三个对象
2015/12/31 面试题
给病人的慰问信
2015/03/23 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
python 通过使用Yolact训练数据集
2021/04/06 Python
Vue CLI中模式与环境变量的深入详解
2021/05/30 Vue.js