jquery同位素与无限滚动和图像预加载器

时间:2012-12-14 09:46:36

标签: jquery jquery-isotope infinite-scroll image-preloader

我正在使用jquery同位素和无限滚动,并希望使用图像预加载器

我正在使用的图像预加载器为:Image preloader

$('.image').preloader({
    loader: '/images_/icons/img_pre.gif',
    fadeIn: 700,
    delay : 200 
    });

它在第一页上完美运行,但是对于无限滚动的项目不会触发,所以我需要将它放在同位素回调中的某处,但是在哪里?有什么想法吗?

这是我使用的同位素回调代码:

// call Isotope as a callback
function( newElements ) {
    $container.isotope( 'insert', $( newElements ) ); 
    $container.isotope({ filter: '*' });
}

2 个答案:

答案 0 :(得分:1)

小沃尔特很接近,但我已经尝试过了。它们的关键是代码的顺序,预加载器代码必须在加载新元素之前进行,所以:

function( newElements ) {

$('.image').preloader({
    loader: '/images_/icons/img_pre.gif',
    fadeIn: 700,
    delay : 200 
});

$container.isotope( 'insert', $( newElements ) ); 
$container.isotope({ filter: '*' });
}

答案 1 :(得分:0)

同位素中有loading属性与您需要的属性相似,但仅适用于整个下一页,而不是特定的img元素:

$container.infinitescroll({
    navSelector  : '#page_nav',    // selector for the paged navigation 
    nextSelector : '#page_nav a',  // selector for the NEXT link (to page 2)
    itemSelector : '.element',     // selector for all items you'll retrieve
    loading: {
        finishedMsg: 'No more pages to load.',
        img: 'http://i.imgur.com/qkKy8.gif'
      }
    },
    // call Isotope as a callback
    function( newElements ) {
      $container.isotope( 'appended', $( newElements ) ); 
    }
  );

也许您可以尝试使用以下内容调用预加载器:

// call Isotope as a callback
function( newElements ) {
    $container.isotope( 'insert', $( newElements ) ); 
    $container.isotope({ filter: '*' });

    $('.image').preloader({
        loader: '/images_/icons/img_pre.gif',
        fadeIn: 700,
        delay : 200 
    });
}