MooTools: захват внизу справа - PullRequest
2 голосов
/ 01 февраля 2012

Чтобы перейти прямо к точке:

У меня есть контейнер div, который получает количество элементов встроенного блока.В зависимости от количества элементов, которые должен получить контейнер, размеры этих элементов, соответственно, должны соответствовать следующим правилам:

for(i=0; i<elements.length;i++){
     switch (number of elements){
          case 1: elements[i].width=100%; break;
          case 2: elements[i].width=50%; break;
          case 3: elements[i].width=33.3%; break;
          case 4:if(i<3){elements[i].width=33.3%;}else{elements[i].width=100%;}break;
          case 5:if(i<3){elements[i].width=33.3%;}else{elements[i].width=50%;}break;
          case 6:elements[i].width=33.3%;break;
     }
}

И на данный момент контейнер захватывает их вверху (MooTools .grab (element, top)).

Итак, у меня есть следующее: http://i.stack.imgur.com/gq4T0.png

Но я хочу вот что: http://i.stack.imgur.com/eTrTp.png

Чтобы быть очень лаконичным, я хочу, чтобы элементы добавлялись в контейнер в внизу справа и толкали другие элементы вверх контейнера, поэтому я не могу просто использовать.grab (element, 'bottom').

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

1 Ответ

1 голос
/ 02 февраля 2012

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

у вас есть 3 крючка для перемещения / смены родительских узлов:

инъекционные

element.inject(target, 'bottom|top|after|before')

принять

parent.adopt(element)

захватить

parent.grab(element, 'bottom|top|after|before')

они равносильны одному и тому же. Вы не смогли показать, как происходит фактическая инъекция, но ваш цикл от el # 1 до последнего, следовательно, каждый последующий элемент будет - по умолчанию - идти вниз.

вы бы сделали это просто через:

element.inject(cellElement) - по умолчанию, который идет вниз, поэтому он будет делать 1,2,3,4,5,6 в порядке цикла. Вместо этого добавьте 'top' в качестве аргумента, чтобы изменить его, или, если вы сделали while(lengthVar--) {}, вы можете изменить его. Я бы порекомендовал использовать Array.each для зацикливания элементов (или Elements.each как бы - он также может дать вам указатель на индекс, если вам это нужно)

Вы также можете использовать element.inject(cell.getLast(), "before") или следовать любому индексу, который считаете нужным. опубликуйте больше кода или еще лучше, создайте http://jsfiddle.net пример, и мы сможем разобраться в этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...