我想制作一个类似 Pinterest 风格的页面,每个块都可能改变高度,我希望它们只在其列中重新排列。
例如,当页面加载时,布局可能是:
------------------------------------
| | | |
| | | |
|---------| | |
|Hello! I | | |
|am Alice.|----------------| |
|---------| | |
|WoW! | | |
如果用户单击一个块,它的高度会发生变化,理想情况下应该是这样的:
------------------------------------
| | | |
| | | |
|---------| | |
|Hello! I | | |
|am Alice.|----------------| |
|Who are | | |
|you? | | |
|---------| | |
|WoW! | | |
我已经尝试过Masonry和ShapeShift,它们的行为相似。默认情况下,某些块的高度发生变化时,所有块的位置都不会改变。所以Who are you?
会在下面WoW!
,它仍然看起来像:
------------------------------------
| | | |
| | | |
|---------| | |
|Hello! I | | |
|am Alice.|----------------| |
|---------| | |
|WoW! | | |
我可以手动调用一个函数来重新排列它们(例如:$('.container').trigger("ss-rearrange");
对于 ShapeShift),但块可能被排列到不同的列,这并不理想。
我想知道是否有图书馆或者我应该如何实现这一目标?当高度变化时,我需要块仅在其当前列中移动。