我目前正在执行此操作,以存储每个项目的高度,以便稍后通过css
访问它:
children[0].style.setProperty('--previousHeight', 0+'px');
children.forEach((child, i) => {
if(i > 0 ){
var height = children[i-1].offsetHeight;
child.style.setProperty('--previousHeight', height+'px');
}
})
我想把第一个项目更像是另一个。像
这样的东西height = offsetHeight || 0;
但我不确定如何以易于理解的方式做到这一点
答案 0 :(得分:2)
应该是:
children.forEach((child, i) => {
var height = children[i-1] && children[i-1].offsetHeight || 0;
child.style.setProperty('--previousHeight', height+'px');
})
如果您不熟悉:
var height = children[i-1] && children[i-1].offsetHeight || 0;
它给出的结果与:
相同var height = children[i-1] ? children[i-1].offsetHeight : 0;
答案 1 :(得分:0)
这应该是最快捷,最干净的方式。
<div id='myElement'>
<div></div>
<div></div>
<div></div>
<div></div>
</diV>
<script>
var children = document.getElementById('myElement').children;
var h = children[0].offsetHeight;
for(var i in children){
if( i > 0 ){
children[i].style['height'] = h;
children[i].style.setProperty('--previousHeight', h);
}
}
</script>
答案 2 :(得分:0)
这就是我最终做的事情:
children.forEach((child, i) => {
var height = 0
if(i > 0 ){
var height = children[i-1].offsetHeight;
}
child.style.setProperty('--previousHeight', height+'px');
})