Angular8 實(shí)現(xiàn)table表格表頭固定效果
最近項(xiàng)目中有個(gè)需求,表頭固定,內(nèi)部實(shí)現(xiàn)滾動(dòng)條。除了單個(gè)表頭,還有多個(gè)表頭的情況(下一篇中介紹)。
效果圖:

html 結(jié)構(gòu)

按區(qū)域劃分可以分為三個(gè)大部分,一共是通過4個(gè)table 組合成一個(gè)整體的table。
然后通過 col 屬性去設(shè)定列的寬度,注意:這里的寬度必須要設(shè)置為固定值。
表頭過濾功能暫時(shí)未實(shí)現(xiàn)。

水平滾動(dòng)效果與垂直滾動(dòng)效果
監(jiān)聽主體table(淺綠色部分)滾動(dòng)事件,同步上下滾動(dòng)頭部的table (深綠色部分)和 左右滾動(dòng)左側(cè)固定的table(紅色部分中的紫色部分)
代碼 1
$(this.tableContent.nativeElement).on('scroll', (e) => {
$(this.fixedRowWrapper.nativeElement).prop('scrollTop', $(this.tableContent.nativeElement).prop('scrollTop'));
//方式一 :設(shè)置頭部固定列table 的滾動(dòng)條,需要配合less 樣式隱藏滾動(dòng)條(如果不考慮ie9的兼容性,可以使用。less樣式參考代碼2)
// $(this.tableHeader.nativeElement).prop('scrollLeft', $(this.tableContent.nativeElement).prop('scrollLeft'))
// 方式二:設(shè)置頭部固定列table 的margin-left 屬性為負(fù)值,間接實(shí)現(xiàn)了頭部固定的列同步向左滾動(dòng)效果,兼容ie9
$(this.tableHeader.nativeElement).css({ marginLeft: `${-$(this.tableContent.nativeElement).prop('scrollLeft')}px` })
})
代碼 2
.ngx-table__header-inner {
// 隱藏滾動(dòng)條,頁面div 保持橫向滾動(dòng),但是不支持ie9 ,為了兼容性所以沒有使用,ts 中同步滾動(dòng)
// 而是動(dòng)態(tài)設(shè)置 ngx-table__header-inner 的margin-left 實(shí)現(xiàn)滾動(dòng)效果
overflow: -moz-scrollbars-none;
overflow-x: auto;
-ms-overflow-style: none;
&::-webkit-scrollbar {
width: 0 !important;
display: none;
}
}
完整代碼地址
github項(xiàng)目地址,需要的可以點(diǎn)擊訪問 https://github.com/zjinger/ngx-TPR/tree/master/src/app/components/scroll-table
總結(jié)
以上所述是小編給大家介紹的Angular8 實(shí)現(xiàn)table表格表頭固定效果,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
AngularJS自定義過濾器用法經(jīng)典實(shí)例總結(jié)
這篇文章主要介紹了AngularJS自定義過濾器用法,結(jié)合實(shí)例形式總結(jié)分析了AngularJS自定義過濾器進(jìn)行包含、替換、篩選、過濾、排序等操作相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2018-05-05
Angularjs在360兼容模式下取數(shù)據(jù)緩存問題的解決辦法
這篇文章主要為大家詳細(xì)介紹了Angularjs在360兼容模式下取數(shù)據(jù)緩存問題的解決辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
angularjs的select使用及默認(rèn)選中設(shè)置
本篇文章主要介紹了angularjs的select使用及默認(rèn)選中設(shè)置,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04
AngularJS使用ngMessages進(jìn)行表單驗(yàn)證
這篇文章主要介紹了AngularJS使用ngMessages進(jìn)行表單驗(yàn)證的相關(guān)資料,需要的朋友可以參考下2015-12-12
AngularJS基礎(chǔ) ng-list 指令詳解及示例代碼
本文主要介紹AngularJS ng-list 指令,這里幫大家整理了ng-list指令的基本資料,并附有示例代碼,有需要的小伙伴可以參考下2016-08-08
Angular動(dòng)態(tài)綁定樣式及改變UI框架樣式的方法小結(jié)
AngularJS 是一個(gè) JavaScript 框架。它是一個(gè)以 JavaScript 編寫的庫。這篇文章主要介紹了Angular動(dòng)態(tài)綁定樣式及改變UI框架樣式的方法小結(jié),需要的朋友可以參考下2018-09-09
關(guān)于Angular2 + node接口調(diào)試的解決方案
這篇文章主要給大家介紹了關(guān)于Angular2 + node接口調(diào)試的解決方案,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-05-05

