有人可以建议这个网站如何使用jQuery Masonry插件来实现其响应性,流畅的布局吗?
http://tympanus.net/codrops/collective/collective-2/
具体而言;
在浏览器调整大小时,列数从3变为2,这是您对使用砌体的网站的期望,但有趣的是列也会调整大小以始终填充可用的整个宽度。我见过的大多数其他砌体网站都会在列的右侧留下空白,因为列数会发生变化(例如http://masonry.desandro.com/)或列填充整个宽度但列数保持不变({{3} })。他们是否动态设置浏览器调整大小与CSS媒体查询相结合的列数,或者他们是否正在使用CSS3列?
感谢。
答案 0 :(得分:16)
这是我们正在考虑的准则。
jQuery(document).ready(function($) {
var CollManag = (function() {
var $ctCollContainer = $('#ct-coll-container'),
collCnt = 1,
init = function() {
changeColCnt();
initEvents();
initPlugins();
},
changeColCnt = function() {
var w_w = $(window).width();
if( w_w <= 600 ) n = 1;
else if( w_w <= 768 ) n = 2;
else n = 3;
},
initEvents = function() {
$(window).on( 'smartresize.CollManag', function( event ) {
changeColCnt();
});
},
initPlugins = function() {
$ctCollContainer.imagesLoaded( function(){
$ctCollContainer.masonry({
itemSelector : '.ct-coll-item',
columnWidth : function( containerWidth ) {
return containerWidth / n;
},
isAnimated : true,
animationOptions: {
duration: 400
}
});
});
$ctCollContainer.colladjust();
$ctCollContainer.find('div.ct-coll-item-multi').collslider();
};
return { init: init };
})();
CollManag.init();
});
基本思想似乎是添加一个columnselector,它可以找出可以设置的列数。第二步是在函数中使用smartresize event。第三步是用“动态”宽度的列调用砖石。玩得开心:))