【发布时间】:2014-03-19 13:13:56
【问题描述】:
对于Masonry,当屏幕或浏览器窗口的宽度减小到小于1035px 时,我使用以下代码将columnWidth 更改为320。当屏幕宽度大于1035px时,columnWidth应该是240。
但是,无论屏幕宽度如何,下面的代码都会导致columnWidth 停留在320。例如,您可以通过此站点上的博客看到我在谈论的内容:http://keebs.com/sandbox
全屏显示如下:
当浏览器的宽度调整到小于 1035px 时,它看起来像这样:
基本上,对于第一张图片,我希望列数为 3,以便博客可以填满空白空间。为了将列数变为 3,我必须将 columnWidth 更改为 240。
这是代码!
if(jQuery().isotope) {
$container = jQuery('#masonry');
$container.imagesLoaded( function() {
$container.isotope({
itemSelector : '.item',
masonry: {
columnWidth: $(document).width() > 1035 ? 240 : 320
},
getSortData: {
order: function($elem) {
return parseInt($elem.attr('data-order'));
}
},
sortBy: 'order'
}, function() {
// Isotope Chrome Fix
setTimeout(function () {
jQuery('#masonry').isotope('reLayout');
}, 1000);
});
});
// filter items when filter link is clicked
$container = jQuery('#masonry');
jQuery('#filter li').click(function(){
jQuery('#filter li').removeClass('active's);
jQuery(this).addClass('active');
var selector = jQuery(this).find('a').attr('data-filter');
$container.isotope({ filter: selector });
return false;
});
}
【问题讨论】:
-
不要在砌体事件上设置宽度,请在 css 媒体查询上设置宽度
-
@Shibin Masonry 不需要更改 JavaScript 吗?当我通过 CSS 更改宽度时,列数不会改变。
-
浏览器调整大小或其他时间有问题吗?
-
@Shibin 当我调整浏览器的大小时,没关系,因为列数是 2(320px 宽)。当浏览器的宽度大于 1035px 时,我希望列更改为 3(240px 宽)。
标签: javascript jquery jquery-masonry