我想用js做一個切換按鈕,但是第一次點擊它不起作用。由於nav.display.display
在CSS代碼中有display: none;
,因此它沒有任何值。切換按鈕不起作用。沒有顯示:無;首先點擊
我想應該有一個關於如何使用onload的問題......好像css還沒有加載。但我讀過window.onload
等待所有加載。所以我不知道發生了什麼。
這是我如何加載它,在實際的代碼(即處理onload事件之外的jsfiddle)
window.onload = function() {
var el = document.querySelector('.nav-toggle');
el.addEventListener("click", toggleNav, false);
};
NO jQuery,請。
這裏的的jsfiddle:
function toggleNav() {
var nav = document.querySelector('#navigation');
alert(nav.style.display);
if (nav.style.display == 'none') {
nav.style.display = 'flex';
} else {
nav.style.display = 'none';
}
}
var el = document.querySelector('.nav-toggle');
el.addEventListener("click", toggleNav, false);
#navigation {
display: none;
}
<button class="nav-toggle">Toggle</button>
<nav id="navigation">
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
<li><a href="#">Item 4</a></li>
<li><a href="#">Item 5</a></li>
</ul>
</nav>
附加
呀,這樣在DOM的顯示性能。它的工作原理。但是,如果我不想使用style =「」屬性? – Jeflopo
如果你想在css中保留「display:none」,你可以添加一個檢查offsetWidth和offsetHeight,如下所示:http://stackoverflow.com/a/19808107/407526 – Adrian