📚 A tiny but mighty list virtualization library for Svelte, with zero dependencies 💪 Supports variable heights/widths, sticky items, scrolling to index, and more!
I'd like to make a virtual table with a few characteristics:
a sticky header row
keyboard shortcuts (⬆️ and ⬇️) to change the selected row
auto-scroll to reveal a newly-focused row if it's partly offscreen
Attempts
I tried to implement this in two ways shown in this example code, but each had an issue 😅
Put the header in slot="header"
Auto-scrolling reveals only part of a row when navigating down. This seems to happen because the header row shifts the other rows down, and auto-scrolling based on scrollToIndex doesn't take that shift into consideration. Based on this comment about invisible elements, I think this is the expected behavior in this case.
Put the header in slot="item"
Auto-scrolling reveals only part of a row when navigating up. This seems to happen because the sticky header row hides the topmost row.
Questions
Is there another way to do what I have in mind?
If not, would you be open to a PR that tweaks existing behavior to fit this use case?
Thanks in advance for any insight you can offer! 🙏
Background
I'd like to make a virtual table with a few characteristics:
Attempts
I tried to implement this in two ways shown in this example code, but each had an issue 😅
Put the header in
slot="header"
scrollToIndex
doesn't take that shift into consideration. Based on this comment about invisible elements, I think this is the expected behavior in this case.Put the header in
slot="item"
Questions
Thanks in advance for any insight you can offer! 🙏