2

绝对把我的头发拉出来。GitHub 上似乎没有提供黑白解决方案——这很奇怪,因为它似乎是一个相当简单的概念。也许我只是不明白。

基本上,我正在尝试创建一个流畅响应迅速的投资组合 - 使用Isotope过滤项目。过滤效果很好,4 列完全流畅,当您调整窗口大小时,一切看起来都很棒。

但是,对于移动设备和平板电脑布局,我只需要将4 列布局调整为2 列布局。

我试过这个:

$(window).load(function(){

    var $container = $('#thumbs');
    $container.isotope({
        filter: '*',
        animationOptions: {
            duration: 750,
            easing: 'linear',
            queue: false,
       },
    });

    // initialize Isotope
    $container.isotope({
      // options...
      resizable: false, // disable normal resizing
      // set columnWidth to a percentage of container width
      masonry: { columnWidth: $container.width() / 4 },
    });

    // update columnWidth on window resize
    $(window).smartresize(function(){
        $container.isotope({
            // update columnWidth to a percentage of container width
            masonry: { columnWidth: $container.width() / 4 }
        });
    });

// My attempt at using media queries to change 'columnWidth'
    $(window).resize(function() {
        var width = $(window).width();
        if (width < 768) {
            $container.isotope( {
                // update columnWidth to half of container width
                masonry: { columnWidth: $container.width() / 2 }
            });
        }
    });
});

没用:(

任何帮助将非常感激。

4

2 回答 2

2

这应该可以设置您的列数。然后你只需除以columns

var columns;

// set column number
setColumns();

// rerun function when window is resized 
$(window).on('resize', function() {
  setColumns();
});

// the function to decide the number of columns
function setColumns() {
  if($(window).width() <= 768) {
    columns = 2;
  } else {
    columns = 4;
  }
}
于 2012-10-17T22:19:35.280 回答
0

我认为有一种更好的方法,您仍然可以使用 css 媒体查询。在这里查看我的答案:https ://stackoverflow.com/a/20270911/1010892

希望有帮助!!

于 2013-11-28T16:35:31.690 回答