Jquery同位素 - 2个问题 - 铬重叠并首先加载

时间:2012-10-19 15:22:15

标签: jquery jquery-isotope

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

首先,整个项目列表首先直接在左侧加载,然后进行自我修正,但它清晰可见它会这样做,有时会在那里停留一秒左右。

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

正如你所看到的,我正在尝试使用imagesloaded插件,但没有什么不同。

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

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 ) ); 
    }
  );

});

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

解决了问题的一半 - 重叠:

变化:

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

到此:

function(newElements) {
      var $newElems = $(newElements);
      $newElems.imagesLoaded(function(){
        $container.isotope('appended', $newElems );
      });
    }