具有动态块高度的类似Pinterest的插件
Pinterest-like plugin with dynamic block height
我想制作一个类似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),但块可能会排列到不同的列,这并不理想。
想知道是否有图书馆或我应该如何实现这一点?当高度发生变化时,我只需要块在其当前列中移动。
(1)看看砖石的文档:
var container = document.querySelector('#layout-demo .masonry');
var msnry = new Masonry( container, {
columnWidth: 60
});
eventie.bind( container, 'click', function( event ) {
// don't proceed if item was not clicked on
if ( !classie.has( event.target, 'item' ) ) {
return;
}
// change size of item via class
classie.toggle( event.target, 'gigante' );
// trigger layout
msnry.layout();
});
msnry.layout() 是你想要做的。
来源: http://masonry.desandro.com/methods.html
请参阅代码笔:http://codepen.io/johannesjo/pen/kFixz
(2)你也可以尝试使用css-columns:http://www.webdesignerdepot.com/2013/03/how-to-use-css3-columns/
(3)如果你不想像砖石或css列那样改变列,你应该能够使用简单的浮动容器。 不过,您必须自己对内容进行排序。在您的情况下,这可能是最好的解决方案,因为所有其他方法都应根据元素的大小重新评估元素的位置。
(4)如果您不介意重叠元素,则可以使用砖石单元格在内部切换隐藏的div(显示:无)。在不调用 layout() 的情况下,元素将保持其位置,就像您在问题中描述的那样。
- 如何在Angular2中使用jQuery插件
- 可以前端maven插件使用节点,npm已经安装
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 我的jQuery插件参数没有正确启动,遇到了问题
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- TableExport jquery插件:文件名和扩展名问题
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- jQuery插件-从插件中调用公共方法
- 压缩phonegap中ios的图像插件
- jQuery粘性插件可变顶部间距
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 高亮显示与数组字符串一起使用时文本插件中断
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- Wordpress插件根据需要加载js和css
- jQuery Wan Spinner插件的多个字段
- jQuery Facebox插件:关注弹出的外观
- CKEditor v4:自制插件中对话框的动态标题
- Jquery标签插件粘贴问题
- 具有动态块高度的类似Pinterest的插件