Angular8 實現table表格表頭固定效果
阿新 • • 發佈:2020-01-09
最近專案中有個需求,表頭固定,內部實現滾動條。除了單個表頭,還有多個表頭的情況(下一篇中介紹)。
效果圖:
html 結構
按區域劃分可以分為三個大部分,一共是通過4個table 組合成一個整體的table。
然後通過 col 屬性去設定列的寬度,注意:這裡的寬度必須要設定為固定值。
表頭過濾功能暫時未實現。
水平滾動效果與垂直滾動效果
監聽主體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表格表頭固定效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!
如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!