Javascript 侧边栏随着页面更改而保持打开状态



我创建了一个侧边栏,它以一个简单的javascript切换打开,如果用户打开了侧边栏,我想在页面更改期间保持打开状态。

单击打开菜单按钮时,它会运行切换功能。

.HTML:

<h2 onclick="toggleSidebar()"><a href="#">Table of
Contents</a></h2>
<nav id="sidenav">
<div id="top-sidenav">
<a href="javascript:void(0)" class="closebtn" onclick="toggleSidebar()">Table of Contents
&ThickSpace;&times;</a>
</div>
<ul class="subnav">
<li>
<a href="chapter/1.html">Chapter 1
<p>Down the Rabbit-Hole</p>
</a>
</li>
...
</ul>
</nav>

JavaScript:

function toggleSidebar() {
document.getElementById("sidenav").classList.toggle("active");
document.getElementById("main").classList.toggle("sideNavActive");
document.getElementById("buttonHomepage").classList.toggle("sideNavTopBar");
document.getElementById("prevChapter").classList.toggle("sideNavActive");
}

请在下面找到方法,

在您的身体或文档中准备好按照以下内容实现,

.HTML

<body onload=loadMenu()>

document.addEventListener('DOMContentLoaded', (event) => {
loadMenu()
})

或者 - 如果你有 jQuery

$(document).ready(function() {
loadMenu();
});

脚本

function loadMenu() {
if(getLocalStorage("openMenu") == "true") {
toggleSidebar() 
}
}
function toggleSidebar() {
document.getElementById("sidenav").classList.toggle("active");
document.getElementById("main").classList.toggle("sideNavActive");
document.getElementById("buttonHomepage").classList.toggle("sideNavTopBar");
document.getElementById("prevChapter").classList.toggle("sideNavActive");
/*for toggle the menu on localstorage*/
(getLocalStorage("openMenu") == "true" ? setLocalStorage("openMenu", false) : setLocalStorage("openMenu", true)); //wil toggle and trigger menu when modal opened
}
function setLocalStorage(key, value) {
if(typeof(Storage) !== "undefined")
{ 
window.localStorage.setItem(key, value);  
}
}
function getLocalStorage(key) {
if(typeof(Storage) !== "undefined")
{
return window.localStorage.getItem(key)
}
}

最新更新