-1
我使用以下代碼in my site在等於或小於768px的視口中顯示移動菜單。Vanilla JS手機菜單適用於Chrome,但不適用於Firefox或Edge(不切換)
該代碼在Chrome中運行得非常好,但不在Firefox和Edge中,在調整大小後,菜單不會打開(不切換)。爲什麼?
document.addEventListener('DOMContentLoaded',()=>{
let clicks = 0;
let menu = document.querySelector('#menu-mainmenu'); // Menu identifier.
let menuButton = document.querySelector('.menuButton'); // Button class in pagebuilder.
let mobileBehavior =()=>{
menu.style.display = 'none';
menuButton.addEventListener('click',()=>{
clicks++;
if (clicks % 2) {
menu.style.display = 'block';
} else {
menu.style.display = 'none';
}
});
};
if (window.innerWidth <= 768) {
mobileBehavior();
}
// Event cleanups:
window.addEventListener('resize',()=>{
if (window.innerWidth <= 768) {
clicks = 1; // Prevent menuButton double clicking.
mobileBehavior(); // Display mobile menu both on bootstrapping and resize.
} else if (window.innerWidth >= 769) {
menu.style.display = 'block'; // Prevent display:none by mobile mode.
}
});
});
注意:沒有控制檯錯誤。