• I am having a hard problem getting infinite scroll to work with masonry. The new images double up when infinite scroll takes effect. I have looked through the forums and tried using different callbacks but none seem to be working. I am building my site through wordpress using woocommerce. The products are displayed in Masonry format that I am trying to add infinite scroll to. I have made the Masonry responsive using % for the product widths which made the jquery I used for Masonry a little messy which might be adding to the difficulty of getting masonry to work. Below is my jquery for the masonry + the css im using and the selectors I used in the Infinite Scroll plugin setting panel.

    jQuery(document).ready(function($) {
    var $container = $(‘ul.products’);
    var Width = $(window).width();
    var eight = $(window).height();

    $container.imagesLoaded( function(){
    $(‘ul.products’).fadeIn(‘slow’);
    $(‘.woo-pagination’).fadeIn();
    $(‘.artist_description’).fadeIn();
    $(‘.loading’).delay(500).fadeOut(1500);
    /* $(“.woocommerce-message”).fadeOut(2100);*/

    $container.masonry({
    itemSelector: ‘li.product’,
    animationEngine: ‘best-available’,
    isAnimated : true,
    animationOptions: {
    duration: 350,
    easing: ‘linear’,
    queue: true
    },
    resizable: true,
    masonry: { columnWidth: $container.width()}
    });
    $(window).smartresize(function(){
    $container.masonry({
    // update columnWidth to a percentage of container width
    masonry: { columnWidth: $container.width()}
    });
    });
    $(window).smartresize();
    })
    })
    css

    ul.products {
    clear: both;
    width: 101%;
    display: none;
    }
    ul.products li.product {
    float: left;
    width: 19.95%;
    margin-bottom: 0px !important;
    }
    Infinite Plugin setting screen

    Content Selector : ul.products
    Navigation Selector : .Woo-pagination
    Next Selector : .next
    Item Selector : li.product
    In the callback box in the infinite scroll plugin setting page I have tried

    function(newElements) {
    // hide new items while they are loading
    var $newElems = $(newElements).css({ opacity: 0 });
    // ensure that images load before adding to masonry layout
    $newElems.imagesLoaded(function(){
    // show elems now they’re ready
    $newElems.animate({ opacity: 1 });
    $container.masonry( ‘appended’, $newElems, true );
    });
    If anyone could help me figure this out it would be a huge help. Please be as specific as possible because I am still learning jquery and sometimes do not understand where everything should be added or placed. Also if you have any suggestions on the code for the masonry setup or if there is anything that I dont need in it please let me know.

    you can check out the site at artadikt.com, I turned off debug so that it is easier to see the code.

  • The topic ‘Infinite Scroll Plugin not working With Masonry’ is closed to new replies.