JQuery: плагин, подобный кладке, для преодоления dom-order и 3-х позиций - программирование
Подтвердить что ты не робот

JQuery: плагин, подобный кладке, для преодоления dom-order и 3-х позиций

Это может быть трудно объяснить. Есть ли подобный плагин, например, каменная кладка jQuery, способная обнаруживать пробелы в предопределенной сетке и перемещать и позиционировать элементы, которые будут вписываться в эти пробелы?

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

Примечание: это гибкий веб-дизайн с жидкостью.

enter image description here

Итак, мой dom-порядок равен 1,2,3. Однако, когда вы меняете мой макет в пределах определенного media-query, я хочу динамически переключать порядок dom или позиционировать элементы по-разному. Точно так же, как вы видите в моем примере.

Я знаю, что есть такие вещи, как jQuery Masonry или jQuery Isotope но оба этих плагина не заполняют все пустые пространства сетки. Например. проверьте этот снимок изотопа...

enter image description here

Отсутствует один элемент. Конечно, в большинстве случаев это то, что вы хотите сохранить порядок элементов. В моем случае я не забочусь о заказе, я просто хочу, чтобы все пробелы и пробелы были заполнены. Так, как вы видите мой эскиз выше, item-nr-3 следует перемещать вверх, чтобы соответствовать пустому промежутку (так как он вписывался в него). И если бы был другой item того же размера, который бы соответствовал пробелу под item-nr-3.

Как это возможно? Есть ли какой-то плагин jQuery? Или у вас есть другие idaes?


Дополнительная информация: items и ящики, о которых я говорю, имеют значение box-sizing:border-box, поэтому мне не нужно беспокоиться о paddings или полях.


Update: Вот живой пример проблемы: http://jsfiddle.net/r79u2/1/

4b9b3361

Ответ 1

ИЗМЕНИТЬ

Со времени публикации этого я добавил поддержку "Водосточных труб" и Обратные вызовы

Я написал плагин, который делает то, что вы ищете. Не ТОЧНО, но вы можете использовать его, чтобы указать вам в правильном направлении...

Плагин - https://github.com/DrewDahlman/Mason

Сообщение в блоге о теории - http://www.drewdahlman.com/meusLabs/?p=218

Идея такова: мы знаем, что у нас есть несколько элементов - работа Мейсона заключается в заполнении определенного пространства этими элементами, которые плавают слева - это приводит к "разрыву", поэтому нам нужно обнаружить эти пробелы и как-то заполнить их чем-то. Для этого мы можем либо скопировать уже существующий элемент, либо - у нас может быть ведро элементов "filler", которое мы можем заполнить этим пространством.

OP - если вы ищете сетку с произвольным размером с некоторым контролем, это сделает работу. Я сделал эту скрипку - http://jsfiddle.net/bdGVr/

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

Играя с параметрами mason.js, вы можете отрегулировать соотношение, которое является размером относительно контейнера, а также возможными комбо-размерами.

пример - отношение 1,8 и размер 1x3 означает 1,8 x 1 = высота и 1,8 x 3 = ширина.