Изотоп Jquery - 2 вопроса - перекрытие в хроме и загрузка слева

Я использую изотоп jquery, чтобы получить эффект "каменной кладки", но у меня есть проблемы.

Во-первых, весь список элементов сначала загружается слева вниз, затем исправляется, но ясно видно, что он это делает, иногда зависая там на секунду или около того.

Вторая проблема - когда я спускаюсь по странице загруженных элементов (56 одновременно), они иногда перекрывают друг друга. если я нажимаю "показать больше" (используя метод твиттера inf-scroll), они исправляют себя и снова в нижней части новых элементов, которые они перекрывают.

Как вы можете видеть, я пытаюсь подключить плагин для изображений, но не отличается.

Это код и настройки для изотопа:

var $container = $('#wall');

$container.imagesLoaded(function(){

  // isotope
  $container.isotope({
    itemSelector : '.wrap_indiv',
    transformsEnabled: false,
    getSortData: {
            name: function($element) {
                return $element.data('name');
            },

            site: function($element) {
                return $element.data('site');
            },

            date_added: function($element) {
                return $element.data('date_added');
            }

        }
  });

  // filter items when filter link is clicked
    $('#options a').click(function(){
      var selector = $(this).attr('data-filter');
      $container.isotope({ filter: selector });
      return false;
    });

    var $optionSets = $('#options .option-set'),
      $optionLinks = $optionSets.find('a');

    $optionLinks.click(function(){
    var $this = $(this);
    // don't proceed if already selected
    if ( $this.hasClass('selected') ) {
      return false;
    }
    var $optionSet = $this.parents('.option-set');
    $optionSet.find('.selected').removeClass('selected');
    $this.addClass('selected');

    });

  // infinite scroll
  $container.infinitescroll({
    navSelector  : "#page_nav",
                 // selector for the paged navigation (it will be hidden)
  nextSelector : "#page_nav a",
                 // selector for the NEXT link (to page 2)
  itemSelector : ".wrap_indiv",
                 // selector for all items you'll retrieve
  behavior: "twitter",

  loading : {
            'finishedMsg' : 'No more to load.',
            'img' : '/images/icons/loading_sml.gif',
            'selector' : '#wall'
        }
    },
    // call Isotope as a callback
    function( newElements ) {
      $container.isotope( 'insert', $( newElements ) ); 
    }
  );

});

Есть идеи, почему это происходит?

1 ответ

Решение

Исправлена ​​половина проблемы - перекрытие:

Изменить:

function( newElements ) {
  $container.isotope( 'insert', $( newElements ) ); 
}

к этому:

function(newElements) {
      var $newElems = $(newElements);
      $newElems.imagesLoaded(function(){
        $container.isotope('appended', $newElems );
      });
    }
Другие вопросы по тегам