2

我正在使用 jquery isotope 来获得“砌体”效果,但有问题。

首先,整个项目列表首先在左侧直接加载,然后自行纠正,但可以清楚地看到它确实如此,有时会在那里停留一秒钟左右。

第二个问题是当我下载已加载项目的页面(一次 56 个)时,它们有时会相互重叠。如果我单击“显示更多”(使用 inf-scroll twitter 方法),那么它们会自行更正它们,并在它们重叠的新项目的底部再次进行更正。

如您所见,我正在尝试加载图像的插件,但没有什么不同。

这是同位素的代码和设置:

var $container = $('#wall');

$container.imagesLoaded(function(){

  // isotope
  $container.isotope({
    itemSelector : '.wrap_indiv',
    transformsEnabled: false,
    getSortData: {
            name: function($element) {
                return $element.data('name');
            },

            site: function($element) {
                return $element.data('site');
            },

            date_added: function($element) {
                return $element.data('date_added');
            }

        }
  });

  // filter items when filter link is clicked
    $('#options a').click(function(){
      var selector = $(this).attr('data-filter');
      $container.isotope({ filter: selector });
      return false;
    });

    var $optionSets = $('#options .option-set'),
      $optionLinks = $optionSets.find('a');

    $optionLinks.click(function(){
    var $this = $(this);
    // don't proceed if already selected
    if ( $this.hasClass('selected') ) {
      return false;
    }
    var $optionSet = $this.parents('.option-set');
    $optionSet.find('.selected').removeClass('selected');
    $this.addClass('selected');

    });

  // infinite scroll
  $container.infinitescroll({
    navSelector  : "#page_nav",
                 // selector for the paged navigation (it will be hidden)
  nextSelector : "#page_nav a",
                 // selector for the NEXT link (to page 2)
  itemSelector : ".wrap_indiv",
                 // selector for all items you'll retrieve
  behavior: "twitter",

  loading : {
            'finishedMsg' : 'No more to load.',
            'img' : '/images/icons/loading_sml.gif',
            'selector' : '#wall'
        }
    },
    // call Isotope as a callback
    function( newElements ) {
      $container.isotope( 'insert', $( newElements ) ); 
    }
  );

});

知道为什么会发生这些吗?

4

1 回答 1

1

修复了一半的问题 - 重叠:

改变:

function( newElements ) {
  $container.isotope( 'insert', $( newElements ) ); 
}

对此:

function(newElements) {
      var $newElems = $(newElements);
      $newElems.imagesLoaded(function(){
        $container.isotope('appended', $newElems );
      });
    }
于 2012-10-20T10:15:22.723 回答