我有一個標(biāo)準(zhǔn)的HTML表格,其中包含thead和tbody,tbody中的行數(shù)可以是任意數(shù)量,因為它取決于數(shù)組的大小。
表格有一個最大高度,因此可以滾動。當(dāng)表格滾動時,我希望能夠計算出新顯示的頂部和底部行。
此外,我不能使用jquery來實(shí)現(xiàn)這個,我只想使用javascript。
我嘗試了這個問題的被接受的答案,但似乎不準(zhǔn)確,有時會錯誤地計算出2-7行的數(shù)量... 確定html表格中的頂部行
您可以使用IntersectionObserver API來檢查父表格中可見的行。為每一行添加一個交叉觀察器,并使用isIntersecting來檢查行是否可見。
const rows = document.querySelector('.row') const rowsObserver = new IntersectionObserver(entries => { entries.forEach((entry) => { if (entry.isIntersecting) { (在這里添加您的代碼) } else { (在這里添加您的代碼) } }) }) rowsObserver.observe(rows)
要計算第一個和最后一個可見的行,您可以在它們的可見性發(fā)生變化時將每一行添加或移除到一個“visibleElements”數(shù)組中,或者切換一個“visible”類。