如何呈现一个列表/网格行,如果它是粘性的
How to render a List / Grid row as if it were sticky?
我有一个组件利用react-virtualized
的List
进行虚拟滚动,其中每行是类别标题,或属于该类别的实际内容。比如:
Fruits
- Strawberry
- Blueberry
- Mango
- ...etc
Grains
- Oats
- Wheat
- Rice
- ...etc
(其中Fruits
、Grains
为类别标头)
当用户滚动时,如果他们滚动过类别标题,我希望能够从该行获取数据并将其呈现在"粘性"(在引号中,因为position: sticky
还不是真正可行的选项)容器中,粘在滚动容器的顶部,直到他们滚动过下一个类别标题,等等。(基本上,与在iOS音乐应用程序中滚动艺术家的工作方式相同。)
棘手的事情是,我希望这个粘头仍然在滚动容器内,而不是覆盖它或坐在它上面,它需要填充其父容器的宽度,这排除了在List
组件之外渲染一个粘头容器,只是用position: absolute
将其覆盖在顶部。
据我所知,似乎做这样的事情是不可能与react-virtualized
的时刻-因为所有的行都是绝对定位,没有办法在滚动容器内创建一个"粘"行。绝对定位粘贴头是可行的,但前提是所有其他行都静态地定位在正常的文档流中。
是否有可能实现像粘头与react-virtualized
现在?如果不是,如何才能让react-virtualized
支持他们?
谢谢!
我们有类似的要求,你-我们需要一个列表,是支持粘头部分。我们无法用react虚拟化的列表/网格实现这一点,所以我创建了https://github.com/marchaos/react-virtualized-sticky-tree,它支持粘贴头。
它只呈现显示可见列表加上任何父节点所需的内容,以便它们可以保持"粘性"。任何未卡住的父节点都将从DOM中移除。请注意,它也支持嵌套的粘性级别。
请看这里的例子
(免责声明:我是作者)
- 如果 a 为 false,则 if(a) === if(false)
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 剑道网格jQuery动画()问题
- 使用Dnamics CRM 2011中的JavaScript读取子网格的所有记录,而不考虑活动页面
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 对于光滑网格数据视图,如果有更多的行数,则不会加载所有行
- 剑道网格列宽调整不正确如果我使用列菜单
- 使用 jQuery 生成 DIV 网格,但如果不是 10 x 10,则获得 wierd 行为
- 如果剑道网格的第一页上没有剑道网格行,如何选择该行./
- 如果我在网格-地铁风格的应用程序中滑动项目,则无法移动屏幕
- ng如果在创建子作用域时打断网格
- ng如果在CellTemplate ui网格中
- kendou网格如果字段为真/假更改标题
- 如何呈现一个列表/网格行,如果它是粘性的
- 计算如果数字字符串循环|十六进制网格圆形世界
- 如果数据存在,Knockout js网格交换输入字段
- 如果关闭了模态弹出窗口而没有取消在模态内的网格视图中的行编辑,则它不会再次打开
- 如果搜索框在页面上始终可见,则输入jq网格搜索
- 如果复选框在表格网格中被选中,则禁用文本框