2

嗨,我正在尝试使用 jQuery Masonry 和 Infinite scroll 设置一个站点,但我似乎无法让它在 OSX 上的 Chrome 或 Safari 中工作。

开发网站是http://bit.ly/hYJ3Cq

我在控制台中没有收到任何 javascript 错误。

我尝试过的事情:

  • 在砌体 div 中设置图像宽度/高度
  • 使用较旧的 jquery 库
  • 将 js 移动到头部而不是页脚
  • 将 type="text/javascript" 添加到脚本标签
  • 验证 html
  • 在 jQuery(window).load( 和 jQuery(document).ready(

这是我正在使用的代码,它与运行良好的演示代码非常相似:

    jQuery(window).load(function(){

    jQuery('.hfeed').masonry({
        singleMode: true, 
        itemSelector: '.box'
    });

    jQuery('.hfeed').infinitescroll({
      navSelector  : '.pagination',  // selector for the paged navigation 
      nextSelector : '.pagination .next',  // selector for the NEXT link (to page 2)
      itemSelector : '.box',     // selector for all items you'll retrieve
      loadingImg : '/wp-content/themes/sprppl/images/loader.gif',
      loadingText  : "Loading...",
      donetext  : 'No more pages to load.',
      debug: false,
      errorCallback: function() { jQuery('#infscr-loading').animate({opacity: .8},2000).fadeOut('normal');   }
      },
      // call masonry as a callback
      function( newElements ) { jQuery(this).masonry({ appendedContent: jQuery( newElements ) }); }
    );      

    });

任何帮助将不胜感激。

4

1 回答 1

1

http://desandro.com/demo/masonry/docs/infinite-scroll.html

看看“Tumblr 问题”。您应该设置图像大小标签(在<img/>不是<div/>)或使用 setTimeout()

// call masonry as a callback, after 1000 milliseconds
function( newElements ) {
  setTimeout(function() {
    $wall.masonry({ appendedContent: $(newElements) });
  }, 1000);
}

我猜你也应该设置一个columnWidth(我不知道脚本,但这就是他们在文档中所说的)

于 2011-03-16T11:32:53.320 回答