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 元素相对定位代码
Oct 15 Javascript
jquery关于图形报表的运用实现代码
Jan 06 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
Dec 12 Javascript
JS中获取数据库中的值的方法
Jul 14 Javascript
javascript四舍五入函数代码分享(保留后几位)
Dec 10 Javascript
jQuery实现折线图的方法
Feb 28 Javascript
JavaScript取得WEB安全颜色列表的方法
Jul 14 Javascript
详解JavaScript按概率随机生成事件
Aug 02 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
Sep 21 Javascript
基于javascript实现碰撞检测
Mar 12 Javascript
解决vant的Toast组件时提示not defined的问题
Nov 11 Javascript
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
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 mssql 分页SQL语句优化 持续影响
2009/04/26 PHP
php正则表达式(regar expression)
2011/09/10 PHP
php将csv文件导入到mysql数据库的方法
2014/12/24 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
浅谈PHP中的
2016/04/23 PHP
php通过各种函数判断0和空
2020/07/04 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
2016/07/27 Javascript
Vue.js中用v-bind绑定class的注意事项
2016/12/13 Javascript
MUI实现上拉加载和下拉刷新效果
2017/06/30 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
vue element upload组件 file-list的动态绑定实现
2019/10/11 Javascript
Ant Design Pro 之 ProTable使用操作
2020/10/31 Javascript
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
python批量导入数据进Elasticsearch的实例
2018/05/30 Python
python-str,list,set间的转换实例
2018/06/27 Python
Python中six模块基础用法
2019/12/08 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
python实现udp聊天窗口
2020/03/31 Python
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
Zooplus罗马尼亚:宠物食品和配件
2019/11/02 全球购物
师范大学毕业自我鉴定
2013/11/21 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
导游词之西安骊山
2019/12/20 职场文书
浅谈如何保证Mysql主从一致
2022/03/13 MySQL