2012-04-15 2 views
6

Поэтому я использую изотоп masonry макетJQuery вариант Изотоп авто высоты на элемент

$('section').isotope({itemSelector:'article',layoutMode:'masonry',transformsEnabled: false, animationEngine: 'jquery',masonry:{columnWidth:8}});

Проблема заключается в том, что если я не установить высоту для article в CSS, макет Безразлично «Я хорошо смотрю, что элементы перекрываются и что-то прочее, но я не могу установить фиксированную высоту для элементов, так как они являются сообщениями в блогах и могут меняться по размеру. Ребята, у вас есть какие-либо советы о том, как это решить?

ответ

23

Проблема решена, вам нужно позвонить $(window).load instead of $(document).ready(

+0

Работает для меня тоже, используя defaul layout tho. Интересно, что пример изотопа по умолчанию использует '$ (document) .ready()' .. [Codepen link] (http://codepen.io/desandro/pen/nFrte) – Cammy

+0

Хотя загрузка окна может работать, я не рекомендую ее , загрузка окна ожидает загрузки всех активов на странице (CSS, JS, img, iframe и т. д.). imagesLoaded лучше подходит, поскольку вы можете настраивать только изображения в экземпляре Isotope для загрузки. – desandro

8
var $container = $('#container').imagesLoaded(function() { 
    $container.isotope({ 
    // options 
    }); 
}); 

См Isotope - imagesLoaded

+0

Вы правы. Выше страницы возвращает 404, не найденный сейчас. – Kanu

+0

info уже здесь: http://isotope.metafizzy.co/layout.html#imagesloaded – wintersolutions

+0

Это должен быть принятый ответ, его от автора в конце концов – Blowsie

0

Это случилось потому, что изотоп doen't знать размеры изображения до загрузки. Лучший способ сделать это - использовать индикатор загрузки (возможно, с плагином imageLoaded) для загрузки изображений, а затем выполнить вставку или добавление с изотопом. У вас будет плавная навигация и иллюзия более быстрого места загрузки, чем использование $ (window) .load().