jQuery Masonry снизу вверх

Кто-нибудь знает, как сделать стек кладки jQuery снизу вверх? Я написал рудиментарный JS, чтобы складывать вещи снизу вверх, но он не мог делать каменные вещи, такие как укладка следующего кирпича на самую короткую колонку и кирпичей, которые охватывают несколько колонок. Поскольку я плохо разбираюсь в математике, от просмотра исходного кода у меня просто кружится голова.

Укладка снизу вверх

Кто-нибудь хочет попробовать?


person Aen Tan    schedule 05.03.2011    source источник
comment
Если вы ставите задачу, вам нужно будет сделать критерии более четкими, чтобы гарантировать, что вы получите участников. кажется мне немного открытым для интерпретации ... Откуда берутся блоки, каких размеров и форм они могут быть, идеальная цель - плоская вершина? Однако мне нравится диаграмма, и +1 за классный вопрос.   -  person Brandon Frohbieter    schedule 05.03.2011
comment
+1 Хороший вопрос. Во-вторых, запрос на более подробную информацию.   -  person polarblau    schedule 05.03.2011


Ответы (1)


Вы будете смеяться над тем, как легко это сделать, но вам нужно будет изменить плагин (демонстрация).

По сути, я изменил строку 82–85 (все, что нужно было изменить, это top на bottom, но я добавил обе, чтобы вы могли переключаться туда и обратно):

    var position = {
      left: props.colW * shortCol + props.posLeft,
      top: minimumY
    };

к этому:

    var position = (opts.fromBottom) ? {
      left: props.colW * shortCol + props.posLeft,
      bottom: minimumY
    } : {
      left: props.colW * shortCol + props.posLeft,
      top: minimumY
    };

Затем добавил опцию по умолчанию:

  // Default plugin options
  $.fn.masonry.defaults = {
    singleMode: false,
    columnWidth: undefined,
    itemSelector: undefined,
    appendedContent: undefined,
    fromBottom: false, // new option
    saveOptions: true,
    resizeable: true,
    animate: false,
    animationOptions: {}
  };

Теперь вы можете просто использовать плагин следующим образом:

$('#masonry').masonry({ fromBottom: true });

Обновление: я также разветвил репозиторий на github, так что вы можете просто скачать изменения, если вы не хотите делать их самостоятельно.

person Mottie    schedule 06.03.2011
comment
Супер классный! Спасибо фуджи! В другом примечании я добавил еще один родительский элемент, чтобы я мог расположить весь стек в нижней части этого родителя, чтобы имитировать гравитацию. (демонстрация) - person Aen Tan; 06.03.2011