2

こんにちは、jQuery Masonry と無限スクロールを使用してサイトをセットアップしようとしていますが、OSX の Chrome または Safari では動作しないようです。

開発サイトはhttp://bit.ly/hYJ3Cqです

コンソールに JavaScript エラーが表示されません。

私が試したこと:

  • 組積造 div 内で画像の幅/高さを設定する
  • 古い jquery ライブラリの使用
  • js をフッターではなくヘッドに移動する
  • script タグに type="text/javascript" を追加する
  • html の検証
  • jQuery(window).load( と jQuery(document).read(

これは私が使用しているコードで、正常に動作するデモ コードと非常によく似ています。

    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 Issue」を見てください。画像サイズ タグを設定するか ( では<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 に答える