【问题标题】:jquery isotope with infinite scroll and image preloader具有无限滚动和图像预加载器的 jquery isotope
【发布时间】:2012-12-14 09:46:36
【问题描述】:

我正在使用 jquery isotope 和无限滚动并想使用图像预加载器

我使用的图片预加载器是这样的: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: '*' });
}

【问题讨论】:

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


    【解决方案1】:

    Walter Jr 很接近,但我已经尝试过了。他们的关键是代码的顺序,预加载器代码必须在加载新元素之前出现,所以:

    function( newElements ) {
    
    $('.image').preloader({
        loader: '/images_/icons/img_pre.gif',
        fadeIn: 700,
        delay : 200 
    });
    
    $container.isotope( 'insert', $( newElements ) ); 
    $container.isotope({ filter: '*' });
    }
    

    【讨论】:

      【解决方案2】:

      同位素中有一个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 
          });
      }
      

      【讨论】:

      • 您能否编辑此问题并发布您的完整 html 页面或仅发布下一页的加载代码?我在我的一项工作中使用了一个 jquery 函数 live() 来保持我的函数对新元素处于活动状态。
      猜你喜欢
      • 2015-01-29
      • 1970-01-01
      • 2016-09-20
      • 2013-12-01
      • 2013-08-15
      • 2016-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多