我試圖創建一個擴展菜單,將父div與多個400px較小的div一起添加,直到完整的父div被填充。根據孩子的身高/寬度填寫父div
在for循環中,我正在檢查.background是否與.main-nav高度相同,如果不是,則繼續添加.slice div。
我遇到的問題是,一旦.background與.main-nav高度相同,它將停止添加.slices divs,這意味着不會覆蓋全寬。
P.S第一個'real'JS項目;對不起,如果我的代碼是混亂的。
以下的jsfiddle會更有意義:
JS:
(function() {
'use strict';
var s = document.getElementsByClassName('slice');
var m = document.getElementById('btn-nav');
var b = document.getElementsByClassName('background')[0];
var a = document.getElementById('main-nav');
var w = document.documentElement.clientHeight;
m.addEventListener('click', function() {
m.classList.add('open');
for(var i = b.clientHeight; i < a.clientHeight; i++) {
var c = document.getElementsByClassName('slice')[0];
var d = c.cloneNode(true);
if(b.clientHeight == a.clientHeight) {
break;
} else {
c.parentNode.appendChild(d);
}
}
for(var i = 0; i < s.length; i++){
s[i].style.opacity = 1;
}
}, false);
}());
HTML
<div id="master">
<a id="btn-nav">
<span></span>
<span>Menu</span>
<span></span>
</a>
<nav id="main-nav">
<div class="background" >
<div class="slice"></div>
</div>
</nav>
</div><!-- end master -->
第一件事,我推薦使用jQuery。 –
學習JQuery寫入JavaScript是否更有意義? – user1381806
你想要做什麼? – DarkThanos