如何从mootools中选择css类属性,getStyle()
how to select css class attributes from mootools,getStyle()?
我需要克隆一个对象,并试图找到如何从mootools 中检索类css属性
css:
.card {
width: 109px;
height: 145px;
}
html:
<div id="cards">
<div class="card" id="c0">
<div class="face front"></div>
<div class="face back"></div>
</div>
</div>
js:
window.addEvent('domready', function(){
Duplicacartes();
});
function Duplicacartes(){
var uiCards= document.getElementById('cards');
for(var i=1;i<521;i++)
{
var clone = $('c0').clone();
clone.set('id', 'c'+i);
clone.setStyle('left', (clone.getStyle('width') + 20) * (i % 40));
clone.setStyle('top', (clone.getStyle('height') + 20) * Math.floor(i / 40));
clone.inject('cards','bottom');
}
但我没有结果:
函数clone.getStyle()不获取类CSS属性,仅获取'element'特性。我尝试了很多方法都没有成功。
$('c'+i).getStyle('width');
$('c'+i).style.width;
...
做这件事的方法是什么?感谢
我不认为你可以从克隆的元素中获得它,但你可以从原始元素中复制它,并像这样使用.getComputedSize():
var computed = $('c0').getComputedSize();
所以你的功能可能看起来像:
window.addEvent('domready', function () {
Duplicacartes();
});
function Duplicacartes() {
var uiCards = document.getElementById('cards');
var computed = $('c0').getComputedSize();
for (var i = 1; i < 521; i++) {
var clone = $('c0').clone();
clone.set('id', 'c' + i);
clone.setStyle('left', (computed.width + 20) * (i % 40));
clone.setStyle('top', (computed.height + 20) * Math.floor(i / 40));
clone.inject('cards', 'bottom');
}
}
Fiddle
注意:
-我还在css中添加了position:absolute;
-.getComputedSize()
是More的一部分,因此您还需要加载More。
元素方法:getStyle
GetStyle()
将元素的css属性返回为string
(在本例中,将width
返回为"300px"
)。因此,数学公式不正确,并返回NaN("Not-a-Number"值),因此MooTools不会设置left
和top
css样式。
因此,应使用toInt()
函数将width
和height
属性转换为整数:
clone.getStyle('width').toInt()
由于创建了大量的元素,因此需要对脚本进行一些优化,比如不保存克隆元素的引用,而且只找到要克隆的元素一次就足够了。
window.addEvent('domready', function(){;
Duplicacartes();
});
function Duplicacartes() {
var card = $('c0');
for ( var i=1; i<521; i++ ) {
card.clone().set({
id: 'c'+i,
styles: {
left: (card.getStyle('width').toInt() + 20) * (i % 40),
top: (card.getStyle('height').toInt() + 20) * Math.floor(i / 40)
}
}).inject( 'cards', 'bottom' );
}
}
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在选项卡上定义属性'的主窗口对象
- 锚点元素的href属性自动更改
- jQuery最近父级的数据属性选择器
- 如何从mootools中选择css类属性,getStyle()