如何复制pinterest.com的绝对div堆叠布局

chr*_*kso 104 css jquery layout

我希望复制Pinterest.com的div布局,特别是如何调整列数以适应更多/更少的浏览器调整大小,垂直堆叠不依赖于相邻的列高度.源代码显示每个div都是绝对位置.联合创始人回答了一个Quora帖子,说明它是用自定义jQuery和CSS完成的.我希望结果从左到右排序.您可以提供任何方向来自己制作它将非常感激.

Eva*_*arp 183

我写了Pinterest脚本.ID与布局无关,用于其他与交互相关的JS.以下是它的工作原理:

预先:

  • 绝对定位销容器
  • 确定列宽
  • 确定列之间的边距(排水沟)

设置一个数组:

  • 获取父容器的宽度; 计算适合的列数
  • 创建一个空数组,其长度等于列数.在构建布局时使用此数组存储每列的高度,例如,列1的高度存储为数组[0]

遍历每个引脚:

  • 在添加时将每个引脚放在最短的列中
  • "left:"===列#(索引数组)乘以列宽+边距
  • "top:"===当时最短列的数组(高度)中的值
  • 最后,将引脚的高度添加到列高(数组值)

结果很轻.在Chrome中,整理50页以上的引脚需要不到10毫秒.

  • 这是一个可靠的教程 - http://benholland.me/javascript/how-to-build-a-site-that-works-like-pinterest/ (22认同)
  • 你的意思是如何计算柱子的高度?如果您不知道其中物品的数量和高度,您怎么知道应该有多高?有没有机会你可以布局一些伪代码来演示? (4认同)

Bob*_*ob. 79

您还可以查看jQuery Plug-in Masonry,了解这种功能.

  • 真正令人惊叹的图书馆 现在我没有任何问题地使用它. (3认同)

小智 57

我们发布了一个jQuery插件,因为我们为Wookmark多次提出相同的问题.它创建了这种类型的布局.在这里查看 - Wookmark jQuery插件

  • 这种解决方案似乎比砖石加载更快 (4认同)