Как заставить JQuery-изотоп работать с элементом, который меняет высоту?

Допустим, у меня много элементов, и изотоп работает отлично.

Теперь, когда пользователь нажимает «показать изображение» на одной из ссылок внутри элемента, элемент показывает изображение. Проблема в том, что изотоп не учитывает это автоматически, и изображение «перекрывается» с элементом под ним.

Как это исправить?

Я хотел бы, чтобы нижний элемент автоматически перемещался вниз, чтобы освободить место для расширенного верхнего элемента.


person TIMEX    schedule 18.03.2012    source источник


Ответы (1)


Просто вызовите reLayout в своем контейнере после того, как элемент изменит размер.

$('#myContainer').isotope('reLayout');
person Interrobang    schedule 18.03.2012
comment
Спасибо! Знаете ли вы, как я могу отключить анимацию при выполнении reLayout? - person TIMEX; 18.03.2012
comment
Установите для параметра animationEngine значение «none»: isotope.metafizzy.co/docs/options.html #анимационный движок - person Interrobang; 18.03.2012
comment
когда я вызываю reLayout, строки перемещаются влево и вправо. Есть ли способ просто сдвинуть нижний ряд вниз вместо того, чтобы все перемещалось влево/вправо по экрану? (Я использую макет каменной кладки... должен ли я использовать другой метод макета?) спасибо - person TIMEX; 20.03.2012
comment
К сожалению, любой из типов компоновки упаковки будет пытаться уместить все как можно плотнее, поэтому невозможно будет достичь того, что вы описываете, исключительно в Masonry. (см. пример: isotope.metafizzy.co/demos/relayout.html) - person Interrobang; 20.03.2012
comment
Спасибо. Что было бы лучшим решением для этого? (Pinterest не перемещает элементы влево и вправо... он просто толкает нижнюю часть вниз) - person TIMEX; 21.03.2012
comment
Не видя вашего кода, это трудно понять, но все, что делает Masonry, — это вычисляет абсолютные позиции для каждой ячейки. Вы можете найти элементы, left которых находится в диапазоне от targetItem.left до targetItem.left+targetItem.width, и переместить все их top += targetItem.newHeight - targetItem.oldHeight. - person Interrobang; 21.03.2012