我正在使用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 ) );
}
);
});
知道为什么会这样吗?
答案 0 :(得分:1)
解决了问题的一半 - 重叠:
变化:
function( newElements ) {
$container.isotope( 'insert', $( newElements ) );
}
到此:
function(newElements) {
var $newElems = $(newElements);
$newElems.imagesLoaded(function(){
$container.isotope('appended', $newElems );
});
}