进入正题:
我有一个容器 div,它接收许多行内 block 元素。根据容器必须接收的元素数量,这些元素的大小会相应地遵循这些规则:
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 文档,但似乎我无法解决这个问题。 有什么想法吗?
最佳答案
呃,这取决于你做什么,但鉴于你未能发布 DOM 或你的注入(inject)代码,这里是可用内容的概要。
你有 3 个钩子(Hook)来移动/改变父节点:
注入(inject)
element.inject(target, '底部|顶部|之后|之前')
采纳
parent.adopt(元素)
捕获
parent.grab(element, 'bottom|top|after|before')
它们是一回事。你没有显示实际注入(inject)是如何发生的,但你的循环是从 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示例,我们可以考虑将其整理出来。
关于javascript - MooTools:捕获右下角,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9101392/