无法让jQuery Masonry + Infinite Scroll在Safari和Chrome中运行

时间:2011-03-16 11:09:45

标签: jquery jquery-masonry infinite-scroll

您好我正在尝试使用jQuery Masonry和Infinite滚动设置网站,但我似乎无法让它在Chrome或Safari OSX上运行。

开发网站是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 ) }); }
    );      

    });

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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,我猜(我不知道脚本,但这就是他们在文档中说的内容)